Skip to content

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

2019-02-06

Install

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

See manifest-v1.4.0.txt, and the package specific manifest files for sha256 sums and the associated .asc files to confirm those shas.

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

Contents

dcrd v1.4.0

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

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

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

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

Downgrade Warning

The database format in v1.4.0 is not compatible with previous versions of the
software. This only affects downgrades as users upgrading from previous
versions will see a lengthy one time database migration.

Once this migration has been completed, it will no longer be possible to
downgrade to a previous version of the software without having to delete the
database and redownload the chain.

Notable Changes

Fix Lightning Network Sequence Locks Vote

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

Smart Fee Estimation (estimatesmartfee)

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

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

Support for Whitelisting Inbound Peers

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

Several Speed Optimizations

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

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

Faster Tip Block Relay

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

UTXO Set Restructuring

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

RPC Server Changes

New Chain State Query RPC (getblockchaininfo)

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

Removal of Vote Creation RPC (createrawssgen)

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

Updates to Block and Transaction RPCs

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

Built-in Support for Enabling External TLS RPC Connections

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

Changelog

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

Protocol and network:

Transaction relay (memory pool):

RPC:

dcrd command-line flags and configuration:

Documentation:

Developer-related package and module changes:

Testing and Quality Assurance:

Misc:

Code Contributors (alphabetical order):

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

dcrwallet v1.4.0

This release focuses on bug fixes and general improvements for both direct
dcrwallet command line users and other projects building on top of dcrwallet
(such as Decrediton and upcoming mobile wallets). A comprehensive list of
improvements and bug fixes follows.

Bug fixes

  • Fixes were made to which and how many addresses and wallet UTXOs are watched
    by the SPV and RPC syncers. This prevents several bugs resulting from missed
    transactions, such as avoiding double spending errors and spends of unknown
    inputs.

  • Committed filter creation and validation is fixed on all ARM processors.
    Previously, an ARM assembly optimization could produce incorrect output for
    the siphash function.

  • During initial wallet creation, the database is now always cleanly closed
    before the process exits. Previously, this was a race and the new wallet
    database may have been missing writes during the initialization step.

  • RPC connection errors to dcrd are now properly logged

  • A possible deadlock situation was removed by adding a missing mutex unlock to
    the SPV peering implementation.

  • Error handling has been improved when querying unmined and unspent ticket
    transactions.

  • The total number of logged transactions processed by the RPC syncer has been
    fixed.

  • The process can be interrupted at startup if while being blocked on acquiring
    the wallet's database lock. Previously, the process would have needed to be
    killed, or wait for an existing running wallet to shutdown.

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

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

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

New features

  • The gRPC method WalletService.ValidateAddress now returns pubkey of P2PKH
    addresses and BIP0044 branch and child index if the address is controlled by
    the wallet.

  • The gRPC method WalletService.ImportScript is now usable by watching-only
    wallets.

  • The gRPC method WalletService.StakeInfo now includes counts of unspent
    tickets.

  • A new gRPC method TicketBuyerV2Service.RunTicketBuyer has been added to run
    the SPV-compatible ticket buyer.

  • A new gRPC method WalletService.GetTicket has been added to query the
    details of an individual ticket by its transaction hash.

  • A new gRPC method WalletService.SweepAccount has been added to sweep all
    UTXOs of an account to a single new output.

  • A new gRPC method WalletService.RpcSync has been added, providing a similar
    as SpvSync to perform wallet synchronization with a dcrd RPC connection.

  • The SPV and RPC syncers now support callbacks for syncing notifications.
    These notifications are also availble to gRPC clients who invoke the syncers.

  • Creating a new simnet wallet now shows an address that can be used for mining
    rewards.

  • RPC syncing connections to dcrd can now be proxied using the --proxy,
    --proxyuser, and --proxypass options.

Other improvements

  • Builds have been converted to use Go Modules. The repository has been split
    into various submodules, making it far easier to write applications that
    import dcrwallet packages as libraries.

  • Wallet database API is exported for projects that need support for alternative
    database drivers (such as dcrandroid).

  • Default transaction relay fee has been dropped to 0.0001 DCR/kB.

  • Transaction size and fee estimation is improved for ticket purchases and any
    transaction that redeems a P2SH output.

  • DCP0001-0003 now apply to simnet from the start of the chain (note that this
    is a hard fork for existing simnets).

  • Log files are never automatically deleted. Previously, log files would be
    rotated and old log files would be automatically removed. This has been
    changed to avoid the loss of potentially important logs.

  • Logs for unexpected database consistency issues have been improved by logging
    the keys and values

Changelog

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

decrediton v1.4.0

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

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

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

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

New features

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

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

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

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

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

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

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

Other improvements

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

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

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

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

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

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

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

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

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

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

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

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

Bug fixes

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

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

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

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

Changelog

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

Assets 29
Pre-release
Pre-release

@dajohi dajohi released this Jan 28, 2019 · 6 commits to master since this release

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:

Transaction relay (memory pool):

RPC:

dcrd command-line flags and configuration:

Documentation:

Developer-related package and module changes:

Testing and Quality Assurance:

Misc:

Code Contributors (alphabetical order):

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

dcrwallet v1.4.0-rc3

This release focuses on bug fixes and general improvements for both direct
dcrwallet command line users and other projects building on top of dcrwallet
(such as Decrediton and upcoming mobile wallets). A comprehensive list of
improvements and bug fixes follows.

Bug fixes

  • Fixes were made to which and how many addresses and wallet UTXOs are watched
    by the SPV and RPC syncers. This prevents several bugs resulting from missed
    transactions, such as avoiding double spending errors and spends of unknown
    inputs.

  • Committed filter creation and validation is fixed on all ARM processors.
    Previously, an ARM assembly optimization could produce incorrect output for
    the siphash function.

  • During initial wallet creation, the database is now always cleanly closed
    before the process exits. Previously, this was a race and the new wallet
    database may have been missing writes during the initialization step.

  • RPC connection errors to dcrd are now properly logged

  • A possible deadlock situation was removed by adding a missing mutex unlock to
    the SPV peering implementation.

  • Error handling has been improved when querying unmined and unspent ticket
    transactions.

  • The total number of logged transactions processed by the RPC syncer has been
    fixed.

  • The process can be interrupted at startup if while being blocked on acquiring
    the wallet's database lock. Previously, the process would have needed to be
    killed, or wait for an existing running wallet to shutdown.

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

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

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

New features

  • The gRPC method WalletService.ValidateAddress now returns pubkey of P2PKH
    addresses and BIP0044 branch and child index if the address is controlled by
    the wallet.

  • The gRPC method WalletService.ImportScript is now usable by watching-only
    wallets.

  • The gRPC method WalletService.StakeInfo now includes counts of unspent
    tickets.

  • A new gRPC method TicketBuyerV2Service.RunTicketBuyer has been added to run
    the SPV-compatible ticket buyer.

  • A new gRPC method WalletService.GetTicket has been added to query the
    details of an individual ticket by its transaction hash.

  • A new gRPC method WalletService.SweepAccount has been added to sweep all
    UTXOs of an account to a single new output.

  • A new gRPC method WalletService.RpcSync has been added, providing a similar
    as SpvSync to perform wallet synchronization with a dcrd RPC connection.

  • The SPV and RPC syncers now support callbacks for syncing notifications.
    These notifications are also availble to gRPC clients who invoke the syncers.

  • Creating a new simnet wallet now shows an address that can be used for mining
    rewards.

  • RPC syncing connections to dcrd can now be proxied using the --proxy,
    --proxyuser, and --proxypass options.

Other improvements

  • Builds have been converted to use Go Modules. The repository has been split
    into various submodules, making it far easier to write applications that
    import dcrwallet packages as libraries.

  • Wallet database API is exported for projects that need support for alternative
    database drivers (such as dcrandroid).

  • Default transaction relay fee has been dropped to 0.0001 DCR/kB.

  • Transaction size and fee estimation is improved for ticket purchases and any
    transaction that redeems a P2SH output.

  • DCP0001-0003 now apply to simnet from the start of the chain (note that this
    is a hard fork for existing simnets).

  • Log files are never automatically deleted. Previously, log files would be
    rotated and old log files would be automatically removed. This has been
    changed to avoid the loss of potentially important logs.

  • Logs for unexpected database consistency issues have been improved by logging
    the keys and values

Changelog

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

decrediton v1.4.0-rc3

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

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

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

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

New features

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

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

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

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

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

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

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

Other improvements

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

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

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

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

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

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

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

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

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

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

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

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

Bug fixes

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

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

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

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

Changelog

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

Assets 18
Pre-release
Pre-release

@dajohi dajohi released this Jan 4, 2019 · 7 commits to master since this release

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:

Transaction relay (memory pool):

RPC:

dcrd command-line flags and configuration:

Documentation:

Developer-related package and module changes:

Testing and Quality Assurance:

Misc:

Code Contributors (alphabetical order):

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

dcrwallet v1.4.0-rc2

This release focuses on bug fixes and general improvements for both direct
dcrwallet command line users and other projects building on top of dcrwallet
(such as Decrediton and upcoming mobile wallets). A comprehensive list of
improvements and bug fixes follows.

Bug fixes

  • Fixes were made to which and how many addresses and wallet UTXOs are watched
    by the SPV and RPC syncers. This prevents several bugs resulting from missed
    transactions, such as avoiding double spending errors and spends of unknown
    inputs.

  • Committed filter creation and validation is fixed on all ARM processors.
    Previously, an ARM assembly optimization could produce incorrect output for
    the siphash function.

  • During initial wallet creation, the database is now always cleanly closed
    before the process exits. Previously, this was a race and the new wallet
    database may have been missing writes during the initialization step.

  • RPC connection errors to dcrd are now properly logged

  • A possible deadlock situation was removed by adding a missing mutex unlock to
    the SPV peering implementation.

  • Error handling has been improved when querying unmined and unspent ticket
    transactions.

  • The total number of logged transactions processed by the RPC syncer has been
    fixed.

  • The process can be interrupted at startup if while being blocked on acquiring
    the wallet's database lock. Previously, the process would have needed to be
    killed, or wait for an existing running wallet to shutdown.

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

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

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

New features

  • The gRPC method WalletService.ValidateAddress now returns pubkey of P2PKH
    addresses and BIP0044 branch and child index if the address is controlled by
    the wallet.

  • The gRPC method WalletService.ImportScript is now usable by watching-only
    wallets.

  • The gRPC method WalletService.StakeInfo now includes counts of unspent
    tickets.

  • A new gRPC method TicketBuyerV2Service.RunTicketBuyer has been added to run
    the SPV-compatible ticket buyer.

  • A new gRPC method WalletService.GetTicket has been added to query the
    details of an individual ticket by its transaction hash.

  • A new gRPC method WalletService.SweepAccount has been added to sweep all
    UTXOs of an account to a single new output.

  • A new gRPC method WalletService.RpcSync has been added, providing a similar
    as SpvSync to perform wallet synchronization with a dcrd RPC connection.

  • The SPV and RPC syncers now support callbacks for syncing notifications.
    These notifications are also availble to gRPC clients who invoke the syncers.

  • Creating a new simnet wallet now shows an address that can be used for mining
    rewards.

  • RPC syncing connections to dcrd can now be proxied using the --proxy,
    --proxyuser, and --proxypass options.

Other improvements

  • Builds have been converted to use Go Modules. The repository has been split
    into various submodules, making it far easier to write applications that
    import dcrwallet packages as libraries.

  • Wallet database API is exported for projects that need support for alternative
    database drivers (such as dcrandroid).

  • Default transaction relay fee has been dropped to 0.0001 DCR/kB.

  • Transaction size and fee estimation is improved for ticket purchases and any
    transaction that redeems a P2SH output.

  • DCP0001-0003 now apply to simnet from the start of the chain (note that this
    is a hard fork for existing simnets).

  • Log files are never automatically deleted. Previously, log files would be
    rotated and old log files would be automatically removed. This has been
    changed to avoid the loss of potentially important logs.

  • Logs for unexpected database consistency issues have been improved by logging
    the keys and values

Changelog

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

decrediton v1.4.0-rc2

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

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

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

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

New features

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

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

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

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

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

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

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

Other improvements

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

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

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

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

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

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

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

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

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

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

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

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

Bug fixes

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

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

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

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

Changelog

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

Assets 18
Pre-release
Pre-release

@dajohi dajohi released this Dec 14, 2018 · 7 commits to master since this release

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:

Transaction relay (memory pool):

RPC:

dcrd command-line flags and configuration:

Documentation:

Developer-related package and module changes:

Testing and Quality Assurance:

Misc:

Code Contributors (alphabetical order):

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

dcrwallet v1.4.0-rc1

This release focuses on bug fixes and general improvements for both direct
dcrwallet command line users and other projects building on top of dcrwallet
(such as Decrediton and upcoming mobile wallets). A comprehensive list of
improvements and bug fixes follows.

Bug fixes

  • Fixes were made to which and how many addresses and wallet UTXOs are watched
    by the SPV and RPC syncers. This prevents several bugs resulting from missed
    transactions, such as avoiding double spending errors and spends of unknown
    inputs.

  • Committed filter creation and validation is fixed on all ARM processors.
    Previously, an ARM assembly optimization could produce incorrect output for
    the siphash function.

  • During initial wallet creation, the database is now always cleanly closed
    before the process exits. Previously, this was a race and the new wallet
    database may have been missing writes during the initialization step.

  • RPC connection errors to dcrd are now properly logged

  • A possible deadlock situation was removed by adding a missing mutex unlock to
    the SPV peering implementation.

  • Error handling has been improved when querying unmined and unspent ticket
    transactions.

  • The total number of logged transactions processed by the RPC syncer has been
    fixed.

  • The process can be interrupted at startup if while being blocked on acquiring
    the wallet's database lock. Previously, the process would have needed to be
    killed, or wait for an existing running wallet to shutdown.

New features

  • The gRPC method WalletService.ValidateAddress now returns pubkey of P2PKH
    addresses and BIP0044 branch and child index if the address is controlled by
    the wallet.

  • The gRPC method WalletService.ImportScript is now usable by watching-only
    wallets.

  • The gRPC method WalletService.StakeInfo now includes counts of unspent
    tickets.

  • A new gRPC method TicketBuyerV2Service.RunTicketBuyer has been added to run
    the SPV-compatible ticket buyer.

  • A new gRPC method WalletService.GetTicket has been added to query the
    details of an individual ticket by its transaction hash.

  • A new gRPC method WalletService.SweepAccount has been added to sweep all
    UTXOs of an account to a single new output.

  • A new gRPC method WalletService.RpcSync has been added, providing a similar
    as SpvSync to perform wallet synchronization with a dcrd RPC connection.

  • The SPV and RPC syncers now support callbacks for syncing notifications.
    These notifications are also availble to gRPC clients who invoke the syncers.

  • Creating a new simnet wallet now shows an address that can be used for mining
    rewards.

  • RPC syncing connections to dcrd can now be proxied using the --proxy,
    --proxyuser, and --proxypass options.

Other improvements

  • Builds have been converted to use Go Modules. The repository has been split
    into various submodules, making it far easier to write applications that
    import dcrwallet packages as libraries.

  • Wallet database API is exported for projects that need support for alternative
    database drivers (such as dcrandroid).

  • Default transaction relay fee has been dropped to 0.0001 DCR/kB.

  • Transaction size and fee estimation is improved for ticket purchases and any
    transaction that redeems a P2SH output.

  • DCP0001-0003 now apply to simnet from the start of the chain (note that this
    is a hard fork for existing simnets).

  • Log files are never automatically deleted. Previously, log files would be
    rotated and old log files would be automatically removed. This has been
    changed to avoid the loss of potentially important logs.

  • Logs for unexpected database consistency issues have been improved by logging
    the keys and values

Changelog

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

decrediton v1.4.0-rc1

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

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

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

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

New features

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

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

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

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

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

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

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

Other improvements

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

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

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

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

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

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

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

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

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

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

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

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

Bug fixes

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

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

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

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

Changelog

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

Assets 18

@dajohi dajohi released this Oct 15, 2018 · 11 commits to master since this release

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

Assets 18

@dajohi dajohi released this Sep 21, 2018 · 14 commits to master since this release

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:

Transaction relay (memory pool):

RPC:

dcrd command-line flags and configuration:

dcrctl utility changes:

Documentation:

Developer-related package and module changes:

Testing and Quality Assurance:

Misc:

Code Contributors (alphabetical order):

  • Dave Collins
  • David Hill
  • Dmitry Fedorov
  • Donald Adu-Poku
  • harzo
  • hypernoob
  • J Fixby
  • Jonathan Chappelow
  • Josh Rickmar
  • Markus Richter
  • matadormel
  • Matheus Degiovani
  • Michael Eze
  • Orthomind
  • Shuai Qi
  • Tibor Bősze
  • Victor Oliveira

dcrwallet v1.3.0

This release focuses on bringing initial simplified payment verification (SPV)
and committed filter (CF) support to dcrwallet as an optional, experimental
synchronization mode. As usual, the release also contains various other
improvements and bug fixes, iterated below.

This release contains a database upgrade and once upgraded it is not possible to
downgrade to previous wallet releases without performing a seed restore with the
old version.

Bug fixes

  • When code executing under a database transaction panics, the transaction is
    now rolled back. Closing the transaction avoids a deadlock when closing the
    database in the case that the panic is recovered instead of crashing the
    process.

  • Deleting private keys from the database no longer modifies the database with
    an active bucket cursor. Doing so is unsafe and has been the cause of
    database corruption in the past.

  • The JSON-RPC method version no longer panics dereferencing a nil dcrd RPC
    client when one does not exist or has not been associated with the server.

  • Callers of an internal method to return unencrypted scripts have been fixed
    for a breaking API change in the case that the script was not present. This
    subsequently fixes synchronization from exiting prematurely when various
    scripts were not recorded.

  • The JSON-RPC method signrawtransaction has been fixed to avoid a panic in
    cases where an unknown input must have been fetched from dcrd, and the input
    is already spent in the main chain.

  • Fee estimation when spending a P2SH output has been fixed by considering the
    nested script length instead of using the same size estimation performed when
    spending a P2PKH output.

  • gRPC transaction notifications now handle the case of a transaction being
    invalidated by voters in the next block. An invalidated transaction is
    considered to have -1 confirmations, but in most cases the transaction (if not
    double spent) will reappear in mempool with a confirmation count of 0.

New features

  • A SPV synchronization mode has been introduced. SPV may be enabled with the
    --spv config option. The SPV sync mode uses local committed filter matching
    (as opposed to remote filtering as commonly done in other SPV implementations)
    to provide greater privacy and security guarantees by only fetching complete
    blocks on matches. SPV mode uses the Decred wire protocol and peer-to-peer
    network to sync to a target 8 outbound peers. The --spvconnect option is
    provided to manually specify the addresses of outbound peers rather than
    discovering these over DNS and from other peers.

  • A new ticket buyer implementation has been added. This buyer does not rely on
    any features unavailable to SPV mode. All config options which only apply to
    the original ticket buyer are now deprecated, and using only options available
    to the new buyer will cause the new buyer to be run instead. It is not
    possible to use the deprecated ticket buyer with SPV.

  • The gRPC method CreateWatchingOnlyWallet has been added to allow the
    creation of a watching-only wallet for an account extended pubkey.

  • The gRPC method SignTransactions has been added to sign multiple
    transactions in a single method.

  • The gRPC method ConstructTransaction now returns the index of any added
    change output, or -1 if no change was added.

  • The gRPC method GetAccountExtendedKey has been added to return an account's
    extended pubkey.

  • The gRPC method SpvSync has been added to execute the SPV synchronizer.
    This RPC returns a message stream used to notify clients of the syncer's
    activity.

  • A new config option --accountgaplimit allows the number of unused accounts to
    be user-configurable. The default has been dropped from 100 unused accounts
    to 10 to improve performance of account rediscovery. This option may be set
    to 100 to restore the previous behavior.

  • The JSON-RPC getstakeinfo result has been modified to include two new
    fields. unspent returns the number of tickets that have not been spent by a
    vote or revocation, and unspentexpired returns the number of unspent tickets
    that are past ticket expiry and cannot possibly be live. Unlike the missed
    and expired fields, these new fields are populated when running in SPV mode.

Other improvements

  • Unnecessarily-verbose debug logs have been removed when filtering ticket
    hashes for owned tickets.

  • The walletdb and snacl packages have been made internal packages to prevent
    these from being exposed by the public API. This is part of an ongoing effort
    to support module-aware builds with vgo and Go 1.11.

  • The error message for the unsupported operation of calling the JSON-RPC method
    listtransactions with an account name been improved by adding a hint to use
    * instead.

  • go vet is now tested by the CI infrastructure and several string formatting
    issues discovered by vet have been resolved.

  • The operating system and machine architecture are now logged at process
    startup together with the wallet release and Go versions.

  • The description for the --createtemp config option now references the
    requirement of additionally setting --appdata rather than the deprecated
    --datadir option.

  • Input amounts of previous outputs are now set before signing transactions.
    This will be required as proposed signature hash algorithms commit to the
    input amount.

Changelog

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

decrediton v1.3.0

This release of Decrediton marks the dawn of a large milestone in development.
SPV (simple payment verification) has been added in dcrwallet which allows
wallets to connect directly to peers and not required a fully synced node to be
connected. For now this feature will be turned OFF by default, then when we
have gotten thorough feedback and a confident in the usage, it will be turned
on by default.

While it's hard to give details of speed increases due to variances in systems,
we've seen roughly a 5x increase in syncing a previously used seed to tip on
mainnet. Previously, syncing the chain would take roughly 1hr plus another 5-10
mins for the wallet to become synced. Now, we're seeing about 20mins total time
to being able to fully use a wallet to send or purchase tickets.

In the coming releases, we are going to work on further speeding this process up,
as well as providing more feedback from dcrwallet to Decrediton to make a
richer user experience.

*Note: Automatic ticket purchasing has been disabled for SPV. We will be
implementing a way to start and stop the new v2 ticketbuyer in dcrwallet. This
new version is much simpler and really only has 1 option to set which would
be an absolute balance to maintain. This new version will also allow users to
run multiple ticket purchases for each account.

This release also has been audited by our design team at Eeter, LLC. Most of the
pages have received an update to the styling to add more polish and be more
resilient to various sizing and displays. In the near future, we will be
focusing on color themes and window sizing for small, medium and large displays.

We are also proud to announce the intial release of the Politeia integration.
While this functionality is still in beta-testing, what you see will be roughly
the final form. Proposals up for vote will be shown and your possible tickets
will be compared to the proposal's allowed tickets to vote. If there are
tickets available to vote, you simply make your choice, enter your passphrase
and your tickets are used to send the Politeia server your cryptographic proof
of ownership.

New Features

  • SPV integration - *Note: This integration is currently hidden from normal
    usage, if you would like to test it, please set "spv_mode": true, in your
    config.json file. With this new integration, there has been a new way of
    syncing that has been added. Now instead of needing to do all of the wallet
    loader processes in the proper order, one can simply call the SpvSync grpc and
    that will handle everything within dcrwallet. This will lead to much less
    errors and other headaches down the road. We have also added an
    "spv_connect": [], option in the config.json file, which will allow users to
    connect directly to a known peer instead of relying on the DNS seeders to find
    peers.

  • Whitelisting and Proxy - We have added new support to control the connections
    to domains that are used for various information. We have also added proxy
    support for those that choose to have the extra security. These were both
    necessary since the addition of Politeia wallet's communicating with the outside
    world. We felt the users should have full control over where the wallet is
    communicating. This support will be further improved upon in future releases
    and requests for things are made.

  • Initial Politeia Integration - *Note: This integration is currently hidden
    from normal usage, but can be accessed by setting "politeia_beta": true, in
    your config.json file. When activated the user is shown a new page on the
    side bar menu, reading "Governance." This will show them the Politeia
    information, of which is pulled from a request to the proposals site.
    They will be shown currently live and past votes.

  • Animated Onboarding Slides - All new animated slides were added. Big thanks
    for all the hard work from @kyleFirethought and everyone at Eeter! They really
    make the wallet shine.

Other improvements

  • Launcher - The launcher UI was audited and has most of its issues smoothed
    out. There were some lingering issues and possible ways of users to get "stuck"
    while loading up their wallets.

  • Inputs and Errors - All inputs have been audited for consistency and proper
    input error states are now being used. We are very pleased with the look and
    feel of the input errors and believe they are not too intrusive for users while
    being very clear of what needs to be corrected.

  • Max Wallet Option - Users are now able to set the max wallets that are
    shown on the launcher screen. The default is currently set to 3. But keep in
    mind that it was styled assuming only 3 would be shown, so there may be some
    distortions as the number shown grows.

  • Refined About Modal - The additional window was removed in favor of a React
    modal. This allowed us to clean up the code and remove a redundant menu bar
    group.

  • Long Form Translations - Due issues translating large pieces of text that were
    split up into partial sentences, we are now keeping large sections of
    documentation that need to be translated together. This is for things like the
    onboarding slides and various informational modals.

Changelog

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

Assets 18
Pre-release
Pre-release

@dajohi dajohi released this Sep 4, 2018 · 14 commits to master since this release

dcrd v1.3.0-rc2

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:

Transaction relay (memory pool):

RPC:

dcrd command-line flags and configuration:

dcrctl utility changes:

Documentation:

Developer-related package and module changes:

Testing and Quality Assurance:

Misc:

Code Contributors (alphabetical order):

  • Dave Collins
  • David Hill
  • Dmitry Fedorov
  • Donald Adu-Poku
  • harzo
  • hypernoob
  • J Fixby
  • Jonathan Chappelow
  • Josh Rickmar
  • Markus Richter
  • matadormel
  • Matheus Degiovani
  • Michael Eze
  • Orthomind
  • Shuai Qi
  • Tibor Bősze
  • Victor Oliveira
Assets 18
Pre-release
Pre-release

@dajohi dajohi released this Aug 10, 2018 · 14 commits to master since this release

2018-08-10

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

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:

Transaction relay (memory pool):

RPC:

dcrd command-line flags and configuration:

dcrctl utility changes:

Documentation:

Developer-related package changes:

Testing and Quality Assurance:

Misc:

Code Contributors (alphabetical order):

  • Dave Collins
  • David Hill
  • Dmitry Fedorov
  • Donald Adu-Poku
  • harzo
  • hypernoob
  • J Fixby
  • Jonathan Chappelow
  • Josh Rickmar
  • Markus Richter
  • matadormel
  • Matheus Degiovani
  • Michael Eze
  • Orthomind
  • Shuai Qi
  • Tibor Bősze
  • Victor Oliveira

dcrwallet v1.3.0-rc1

This release focuses on bringing initial simplified payment verification (SPV)
and committed filter (CF) support to dcrwallet as an optional, experimental
synchronization mode. As usual, the release also contains various other
improvements and bug fixes, iterated below.

This release contains a database upgrade and once upgraded it is not possible to
downgrade to previous wallet releases without performing a seed restore with the
old version.

Bug fixes

  • When code executing under a database transaction panics, the transaction is
    now rolled back. Closing the transaction avoids a deadlock when closing the
    database in the case that the panic is recovered instead of crashing the
    process.

  • Deleting private keys from the database no longer modifies the database with
    an active bucket cursor. Doing so is unsafe and has been the cause of
    database corruption in the past.

  • The JSON-RPC method version no longer panics dereferencing a nil dcrd RPC
    client when one does not exist or has not been associated with the server.

  • Callers of an internal method to return unencrypted scripts have been fixed
    for a breaking API change in the case that the script was not present. This
    subsequently fixes synchronization from exiting prematurely when various
    scripts were not recorded.

  • The JSON-RPC method signrawtransaction has been fixed to avoid a panic in
    cases where an unknown input must have been fetched from dcrd, and the input
    is already spent in the main chain.

  • Fee estimation when spending a P2SH output has been fixed by considering the
    nested script length instead of using the same size estimation performed when
    spending a P2PKH output.

  • gRPC transaction notifications now handle the case of a transaction being
    invalidated by voters in the next block. An invalidated transaction is
    considered to have -1 confirmations, but in most cases the transaction (if not
    double spent) will reappear in mempool with a confirmation count of 0.

New features

  • A SPV synchronization mode has been introduced. SPV may be enabled with the
    --spv config option. The SPV sync mode uses local committed filter matching
    (as opposed to remote filtering as commonly done in other SPV implementations)
    to provide greater privacy and security guarantees by only fetching complete
    blocks on matches. SPV mode uses the Decred wire protocol and peer-to-peer
    network to sync to a target 8 outbound peers. The --spvconnect option is
    provided to manually specify the addresses of outbound peers rather than
    discovering these over DNS and from other peers.

  • A new ticket buyer implementation has been added. This buyer does not rely on
    any features unavailable to SPV mode. All config options which only apply to
    the original ticket buyer are now deprecated, and using only options available
    to the new buyer will cause the new buyer to be run instead. It is not
    possible to use the deprecated ticket buyer with SPV.

  • The gRPC method CreateWatchingOnlyWallet has been added to allow the
    creation of a watching-only wallet for an account extended pubkey.

  • The gRPC method SignTransactions has been added to sign multiple
    transactions in a single method.

  • The gRPC method ConstructTransaction now returns the index of any added
    change output, or -1 if no change was added.

  • The gRPC method GetAccountExtendedKey has been added to return an account's
    extended pubkey.

  • The gRPC method SpvSync has been added to execute the SPV synchronizer.
    This RPC returns a message stream used to notify clients of the syncer's
    activity.

  • A new config option --accountgaplimit allows the number of unused accounts to
    be user-configurable. The default has been dropped from 100 unused accounts
    to 10 to improve performance of account rediscovery. This option may be set
    to 100 to restore the previous behavior.

  • The JSON-RPC getstakeinfo result has been modified to include two new
    fields. unspent returns the number of tickets that have not been spent by a
    vote or revocation, and unspentexpired returns the number of unspent tickets
    that are past ticket expiry and cannot possibly be live. Unlike the missed
    and expired fields, these new fields are populated when running in SPV mode.

Other improvements

  • Unnecessarily-verbose debug logs have been removed when filtering ticket
    hashes for owned tickets.

  • The walletdb and snacl packages have been made internal packages to prevent
    these from being exposed by the public API. This is part of an ongoing effort
    to support module-aware builds with vgo and Go 1.11.

  • The error message for the unsupported operation of calling the JSON-RPC method
    listtransactions with an account name been improved by adding a hint to use
    * instead.

  • go vet is now tested by the CI infrastructure and several string formatting
    issues discovered by vet have been resolved.

  • The operating system and machine architecture are now logged at process
    startup together with the wallet release and Go versions.

  • The description for the --createtemp config option now references the
    requirement of additionally setting --appdata rather than the deprecated
    --datadir option.

  • Input amounts of previous outputs are now set before signing transactions.
    This will be required as proposed signature hash algorithms commit to the
    input amount.

Changelog

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

decrediton v1.3.0-rc1

This release of Decrediton marks the dawn of a large milestone in development.
SPV (simple payment verification) has been added in dcrwallet which allows
wallets to connect directly to peers and not required a fully synced node to be
connected. For now this feature will be turned OFF by default, then when we
have gotten thorough feedback and a confident in the usage, it will be turned
on by default.

While it's hard to give details of speed increases due to variances in systems,
we've seen roughly a 5x increase in syncing a previously used seed to tip on
mainnet. Previously, syncing the chain would take roughly 1hr plus another 5-10
mins for the wallet to become synced. Now, we're seeing about 20mins total time
to being able to fully use a wallet to send or purchase tickets.

In the coming releases, we are going to work on further speeding this process up,
as well as providing more feedback from dcrwallet to Decrediton to make a
richer user experience.

*Note: Automatic ticket purchasing has been disabled for SPV. We will be
implementing a way to start and stop the new v2 ticketbuyer in dcrwallet. This
new version is much simpler and really only has 1 option to set which would
be an absolute balance to maintain. This new version will also allow users to
run multiple ticket purchases for each account.

This release also has been audited by our design team at Eeter, LLC. Most of the
pages have received an update to the styling to add more polish and be more
resilient to various sizing and displays. In the near future, we will be
focusing on color themes and window sizing for small, medium and large displays.

We are also proud to announce the intial release of the Politeia integration.
While this functionality is still in beta-testing, what you see will be roughly
the final form. Proposals up for vote will be shown and your possible tickets
will be compared to the proposal's allowed tickets to vote. If there are
tickets available to vote, you simply make your choice, enter your passphrase
and your tickets are used to send the Politeia server your cryptographic proof
of ownership.

New Features

  • SPV integration - *Note: This integration is currently hidden from normal
    usage, if you would like to test it, please set "spv_mode": true, in your
    config.json file. With this new integration, there has been a new way of
    syncing that has been added. Now instead of needing to do all of the wallet
    loader processes in the proper order, one can simply call the SpvSync grpc and
    that will handle everything within dcrwallet. This will lead to much less
    errors and other headaches down the road. We have also added an
    "spv_connect": [], option in the config.json file, which will allow users to
    connect directly to a known peer instead of relying on the DNS seeders to find
    peers.

  • Whitelisting and Proxy - We have added new support to control the connections
    to domains that are used for various information. We have also added proxy
    support for those that choose to have the extra security. These were both
    necessary since the addition of Politeia wallet's communicating with the outside
    world. We felt the users should have full control over where the wallet is
    communicating. This support will be further improved upon in future releases
    and requests for things are made.

  • Initial Politeia Integration - *Note: This integration is currently hidden
    from normal usage, but can be accessed by setting "politeia_beta": true, in
    your config.json file. When activated the user is shown a new page on the
    side bar menu, reading "Governance." This will show them the Politeia
    information, of which is pulled from a request to the proposals site.
    They will be shown currently live and past votes.

  • Animated Onboarding Slides - All new animated slides were added. Big thanks
    for all the hard work from @kyleFirethought and everyone at Eeter! They really
    make the wallet shine.

Other improvements

  • Launcher - The launcher UI was audited and has most of its issues smoothed
    out. There were some lingering issues and possible ways of users to get "stuck"
    while loading up their wallets.

  • Inputs and Errors - All inputs have been audited for consistency and proper
    input error states are now being used. We are very pleased with the look and
    feel of the input errors and believe they are not too intrusive for users while
    being very clear of what needs to be corrected.

  • Max Wallet Option - Users are now able to set the max wallets that are
    shown on the launcher screen. The default is currently set to 3. But keep in
    mind that it was styled assuming only 3 would be shown, so there may be some
    distortions as the number shown grows.

  • Refined About Modal - The additional window was removed in favor of a React
    modal. This allowed us to clean up the code and remove a redundant menu bar
    group.

  • Long Form Translations - Due issues translating large pieces of text that were
    split up into partial sentences, we are now keeping large sections of
    documentation that need to be translated together. This is for things like the
    onboarding slides and various informational modals.

Changelog

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

Assets 18

@dajohi dajohi released this May 1, 2018 · 14 commits to master since this release

2018-05-01

Install

To install decrediton download, uncompress, and run
decrediton Linux or
decrediton OSX or
decrediton Windows.

See manifest-decrediton-v1.2.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.2.1

This decrediton patch release covers a few commonly reported issues shortly
after v1.2.0 was released. Most importantly this fixes an issue causing
balances to show 0 after new blocks connect.

Bug Fixes

  • Fix an issue that was causing non-dirs to be discovered as valid legacy wallets.
    This would cause "config.json" incompletely setup wallet on first load of v1.2.0

  • Fix balance showing 0 after ticket/votes calculated for maturity.

  • Seed pasting was not showing errors and would just blank out the words. Now
    an error is shown when that occurs.

  • Fix various PT-Br translation errors.

  • Due to dcrd v1.2.0 database upgrade, users would be shown "Waiting for RPC..."
    for a very long time with no other information. Now the first lines of both
    dcrd and dcrwallet logs are shown to hopefully give the user more information
    about the current state of the daemon upgrade.

Changelog

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

Assets 9

@dajohi dajohi released this Apr 26, 2018 · 17 commits to master since this release

2018-04-26

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

This release of dcrd contains significant performance enhancements,
infrastructure improvements, improved access to chain-related information for
providing better SPV (Simplified Payment Verification) support, and other
quality assurance changes.

A significant amount of infrastructure work has also been done this release
cycle towards being able to support several planned scalability optimizations.

Downgrade Warning

The database format in v1.2.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

Significantly Faster Startup

The startup time has been improved by roughly 17x on slower hard disk drives
(HDDs) and 8x on solid state drives (SSDs).

In order to achieve these speedups, there is a one time database migration, as
previously mentioned, that will likely take a while to complete (typically
around 5 to 6 minutes on HDDs and 2 to 3 minutes on SSDs).

Support For DNS Seed Filtering

In order to better support the forthcoming SPV wallets, support for finding
other peers based upon their enabled services has been added. This is useful
for both SPV wallets and full nodes since SPV wallets will require access to
full nodes in order to retrieve the necessary proofs and full nodes are
generally not interested in making outgoing connections to SPV wallets.

Committed Filters

With the intention of supporting light clients, such as SPV wallets, in a
privacy-preserving way while still minimizing the amount of data that needs to
be downloaded, this release adds support for committed filters. A committed
filter is a combination of a probalistic data structure that is used to test
whether an element is a member of a set with a predetermined collision
probability along with a commitment by consensus-validating full nodes to that
data.

A committed filter is created for every block which allows light clients to
download the filters and match against them locally rather than uploading
personal data to other nodes.

A new service flag is also provided to allow clients to discover nodes that
provide access to filters.

There is a one time database update to build and store the filters for all
existing historical blocks which will likely take a while to complete (typically
around 2 to 3 minutes on HDDs and 1 to 1.5 minutes on SSDs).

Updated Atomic Swap Contracts

The standard checks for atomic swap contracts have been updated to ensure the
contracts enforce the secret size for safer support between chains with
disparate script rules.

RPC Server Changes

New getchaintips RPC

A new RPC named getchaintips has been added which allows callers to query
information about the status of known side chains and their branch lengths.
It currently only provides support for side chains that have been seen while the
current instance of the process is running. This will be further improved in
future releases.

Changelog

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

Protocol and network:

Transaction relay (memory pool):

RPC:

dcrd command-line flags and configuration:

checkdevpremine utility changes:

Documentation:

Developer-related package changes:

Testing and Quality Assurance:

Misc:

Code Contributors (alphabetical order):

  • Andrew Chiw
  • Daniel Krawsiz
  • Dave Collins
  • David Hill
  • Donald Adu-Poku
  • Javed Khan
  • Jolan Luff
  • Jon Gillham
  • Josh Rickmar
  • Markus Richter
  • Matheus Degiovani
  • Ryan Vacek

dcrwallet 1.2.0

This release provides bug fixes for issues reported by users as well as new RPC
features and additions which are required for Decrediton and Politeia. SPV work
is ongoing but these changes will not land until a future release and after most
of the network nodes are running with committed filter support.

This release contains a database upgrade and once upgraded it is not possible
to downgrade to previous wallet releases without performing a seed restore with
the old version.

Bug fixes

  • Orphan votes (votes which have become invalid for the new main chain tip block
    after a reorg or missed vote) are now rejected from reentering the wallet if
    still notified by dcrd.

  • Watching only wallets are now usable again, after a breaking change to them
    introduced in the 1.1.2 release.

  • The transaction fee when purchasing tickets with the purchaseticket JSON-RPC
    and WalletService.PurchaseTickets gRPC methods will now fallback to the
    wallet's configured fee rate if not specified by the RPC request.

  • Various gRPC methods which allowed specifying 0 DCR as a target amount (e.g.
    WalletService.FundTransaction) now follow their documentation and will
    return or use as many unspent outputs as possible.

  • Outputs of transactions with an expiry set are not spendable by consensus
    rules until having reached coinbase maturity. These outputs are no longer
    returned or used when selecting previous outputs to create new transactions.

New features

  • A new gRPC method WalletService.UnspentOutputs has been added to return a
    stream of all wallet unspent outputs. Outputs may be filtered by their
    associated account and required confirmations, as well as stopping once a
    total target amount has been reached or exceeded.

  • A new gRPC method WalletService.BestBlock has been added which will return
    the hash and height of the current main chain tip block. Previously, this
    information was only available as a unary RPC with the
    WalletService.Accounts method.

  • The gRPC method WalletService.GetTickets will paginate results if called
    with a new target ticket count parameter.

  • A new gRPC method WalletService.CommittedTickets has been added to find
    ticket purchase hashes specified by the request where the largest P2PKH
    commitment amount is controlled by the wallet. The commitment address is
    additionally returned by the result.

  • A new gRPC method WalletService.SignMessages has been added to sign multiple
    messages at a time without needing to unlock and lock the wallet before and
    after each call.

  • The gRPC BlockDetails and BlockInfoResponse messages now include a new
    field which specifies whether votes in the block disapprove of the parent
    block.

  • A new JSON-RPC method publishunminedtransactions has been added which
    resends all unmined transactions of the wallet.

  • A new JSON-RPC method sweepaccount has been added which can be used to move
    as much value as possible from an account to either (possibly the same)
    account or an address. This RPC can be used in place of the consolidate
    method but without knowing and specifying exactly how many inputs to use.

  • The new JSON-RPC methods startautobuyer and stopautobuyer have been added
    which can start and stop the automatic ticket purchaser over JSON-RPC, similar
    to the already existing StartAutoBuyer and StopAutoBuyer gRPC methods of
    the TicketBuyerService.

  • The JSON-RPC method getbalance now returns aggregate balances for all
    accounts if called with the special * account name.

Other improvements

  • The sendtosstx, sendtossgen, and sendtossrtx JSON-RPC methods have been
    removed. These RPCs were intended to manually send ticket purchases, votes,
    and revocations manually, but were unimplemented and would cause crashes if
    used.

  • Transaction size estimation has been improved to more accurately estimate
    fees, in particular when redeeming with pay-to-script-hash redeem scripts.

  • The help JSON-RPC method text for the getbalance RPC has been updated to
    reflect the changes made to the returned object.

  • Users are now informed with log messages to configure their public passphrase
    or enter it on startup if the wallet is encrypted with one but it was not
    specified.

  • Script execution errors during sanity checks after signing inputs now record
    additional information about the failure including the previous output and
    script being spent and the signature script used by the input.

Changelog

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

decrediton 1.2.0

This release of decrediton adds some major changes to the wallet startup,
overview page and adds the first round of statistics for better user
information. Now that the overall look and feel designed by Eeter has been
impletmented we will be focusing on refinement and adding improved
responsiveness (eg dark mode, resolving to various media widths).

Launcher has been redesigned to provide the user with a more intuitive startup
experience. In normal working mode, the daemon (of the chosen network) will
begin to sync and become operational while the user completes wallet
creation/selection. Then once both the wallet is ready and the daemon has
synced the wallet will fully load.

A tutorial, release notes, settings and logs have all been added to the
launcher for the user to utilize whilst they may be waiting for their daemon
to sync. Hopefully this will allow the user to more seamlessly create wallets
with less confusion or require any additional support.

The wallet creation by seed has received a substantial update as well. We now
allow the user to copy seeds (if they complete a warning screen) and also paste
seeds. And for confirmation for new wallets only requires the user to complete
1/3 of the words to confirm storage of wallet's seed.

Overview has been redesigned to give the user more information about their
wallet's current situation and to guide them where to find various features
of their wallet. Basic graphs covering balances, tickets and transactions have
been added. All recent transactions and recent ticket activity can be found
below the overview graphs. We will be adding more features to the overview page
as we gauge user interest and feedback on existing additions.

Introductory data prepartion and statistics have been implemented for this
release. For now we are providing a small window of lookback for transactions,
staking and other information. The reduced window size is mostly an issue
with unsatisfactory performance. When this performance improves, we will be
adding custom windows and window lengths for custom graphing and exporting
options.

New Features

  • Validate Addresses - a form to validate addresses has been added to the
    Security Center. This will allow users to test addresses to confirm address
    ownership and/or validity.

  • Filter by address - now transactions can be filtered by address in History.
    When the user enters a string into the address filter form, it will show any
    address that has an output with a matching address.

  • Charts - we have decided to use recharts as our first
    charting solution.

  • Import wallet from hex seed - instead of entering in the 33 word
    mnemonic, they are now able to use the hex representation of their seed.

  • Export data to CSV - we now all users to export various types of data to csv.
    These options are found under the Transactions page.

  • Show logs - logs can now be found on the launcher and on the help page.
    For now, we only show the logs of the current instance of wallet and daemon.
    This is mostly due to performance with pulling in thousands of lines of text.

Changelog

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

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