Skip to content

Releases: decred/dcrdex

v1.0.0

04 Sep 02:26
Compare
Choose a tag to compare

DCRDEX v1.0.0

This release introduces a major version upgrade. Backwards compatibility is
not strictly preserved.

There are many new features, improvements, and bug fixes since v0.6.

Features and Improvements

  • Add Decred staking
  • Add Decred mixing
  • Add Polygon and Polygon tokens USDC, USDT, WETH, WBTC
  • Add Ethereum token USDT
  • Implement multi-balance contracts for Ethereum and Polygon to reduce provider request rate
  • Use free RPC providers by default for Ethereum and Polygon to enable one-click wallet creation
  • Implement Zcash shielded pool features and refactor wallet to be shielded-by-default
  • Add Digibyte, Firo, Zclassic wallets
  • Expose wallet transaction history
  • Add wallet notifications for new transactions, tip changes, and async ticket purchases
  • Server: Add a Websockets-based reverse tunnel for remote node RPC APIs
  • Server: Enable CA certificates for simplified registration
  • Implement new market making and arbitrage bots and GUI
  • Add Binance and Binance US arbitrage support
  • Refactor reputation system to accommodate low-lot-size markets and smaller bond sizes
  • Show reputation data on dexsettings and trading views
  • Enable password recovery using seed to avoid full wallet restorations
  • Server: Enable public BTC RPC providers
  • Normalize translation system to enable report generation for translators
  • Server: Add database table for finalized candles for faster startup
  • Total GUI refactor. Differentiated sections. Normalized forms. Drop sans-light font
  • Add desktop notifications
  • Implement model Tatanka Mesh for next-gen DEX
  • Use binary searches for optimal lot count in various places for snappier response on low-lot-size markets
  • Make transaction IDs and addresses in notifications into links
  • Enable locating bonds when restoring from seed
  • Switch to a custom BIP-39 based mnemonic seed that encodes the wallet birthday
  • Server: Add endpoint for simple health check for is.decred.online/
  • Enforce minimum rates, minimum lot sizes, and minimum bond sizes based on dust limits
  • Add system installers for Windows, Mac, Linux
  • Rebrand wallet from DCRDEX client (dexc) to Bison Wallet
  • Allow displaying values in custom units in some places
  • Add display for asset fiat rates, current network fees, and anticipated on-chain fees for trading

Fixes

  • Fix rescan panic for native BTC and LTC wallets
  • Multiple UI fixes for incorrect conversions or wrong units displayed
  • Fix panic for nil bookie via core.Book
  • Disable Bitcoin Cash SPV wallet for lack of filter support
  • Tons of other minor fixes

Code Summary

696 files changed, 149904 insertions(+), 37372 deletions(-)

v0.6.3

08 Sep 16:26
0e733c7
Compare
Choose a tag to compare

DCRDEX v0.6.3

This release contains several important fixes and improvements. All users are advised to update.

Please read the v0.6.0 release notes for a full list of changes since v0.5.

Features and Improvements

  • Trade limits scale with bond level.
  • Add extension mode. When in extension mode, 1 or more wallets are managed by a higher level application, and cannot be reconfigured through the dexc GUI.

Fixes

  • Fix bug where order was being retired before server accepted the redeem message.
  • Updates btcwallet dependency to incorporate recent upstream change (btcsuite/btcwallet#870). Resolves a common error that arose during wallet rescans.
  • Resolves a potential server deadlock that can occur if processing of matched cancel orders result in an account cancel violation that would result in a suspension.
  • Removes "bonus tiers", which were an accounting curiosity on the server that didn't do anything for the client but did introduce a bug where client's bonds would fully expire before being replaced.

Code Summary

25 files changed, 281 insertions(+), 126 deletions(-)

v0.6.2...v0.6.3

2 contributors

v0.6.2

20 Jun 16:42
Compare
Choose a tag to compare

DCRDEX v0.6.2

IMPORTANT: This release adds support for the Decred 1.8 consensus agendas. The native SPV Decred wallet in the previous release (v0.6.1) will not follow the chain following any hard forks resulting from DCP0011 or DCP0012. You you must update to v0.6.2 if you use the native Decred wallet.

This release also contains several important fixes and improvements. All users are advised to update.

Please read the v0.6.0 release notes for a full list of changes since v0.5.

Features and Improvements

  • Support the Decred 1.8 consensus agendas. All users of native SPV Decred wallets must update before the hard forks activate. (8aad3fa, 9908805, e0c0c8e)
  • SPV wallet backends for BTC-based assets (BTC, LTC, BCH) are now capable of reporting a fee rate to the application, even if that fee rate is from an external source such as a block explorer or other fee rate oracle. To ensure optimal fee rates are used in all scenarios, be sure the "External fee rate estimates" checkbox in the wallet settings form is checked. It should be checked by default for BTC. Do not change your wallet settings if it is already checked. (89e761a)
  • The UI form where the bond asset is chosen now has improved wording about fidelity bonds. Information presented to the user about bonds will be an area of continual improvement as we work towards v1.0. (29faa9b)
  • The http file server for the browser interface is now more efficient when serving static resources like images/style/js. (3622872)

Fixes

  • On Windows, perform automatic recovery of corrupted Ethereum transaction databases. (b9c9ece)
  • The suggested BTC deposit amount when preparing to register with bonds is now reasonable. Previously it was using the "max" fee rate, which suggested to the user a very large amount to proceed with registration using BTC. Now it uses a stabilized live estimate. (300e975)
  • When adding a DEX from the Settings page, the "wallet wait" form no longer proceeds when there is insufficient balance. Previously it would allow the user to proceed (and possibly fail) when the available balance was just the amount of one bond, when the required amount to proceed is double that amount plus the "fee buffer". (3957ff7)
  • When opened from the Settings page, the "wallet wait" form no longer closes itself when clicked. (b1b75a2)

Server

Decred's Go module dependencies are updated. There are no functional server changes.

Code Summary

11 commits, 41 files changed, 445 insertions(+), and 401 deletions(-)

v0.6.1...v0.6.2

3 contributors

v0.6.1

05 May 20:47
Compare
Choose a tag to compare

DCRDEX v0.6.1

This release contains several important fixes, and adds DigiByte support.

You should update to this release if you want to use Zcash. It is strongly recommended to use v5.4.2 with this release of DCRDEX until v5.5.0 has been evaluated.

Please read the v0.6.0 release notes for a full list of changes since v0.5.

Features

  • Add DigiByte (DGB) support. DigiByte Core v7.17.3 is now a supported external wallet. The v8.22 release candidate has not been evaluated yet, but there are several RPC changes that will require an update.
  • The required zcashd version has been bumped to zcashd v5.4.2. Version 5.5.0 has not been evaluated.
  • The rate of an order is now displayed in the header for the order in the Your Orders table.
  • The last selected candle bin width is remembered. The default for first use is 1hr.

Fixes

There are a number of important fixes. If you use Litecoin, it is strongly recommended to update to this release. More details coming soon.

Server

Startup order funding balance checks are fixed for when an account-based asset is the quote asset on the market.

Code Summary

45 commits, 75 files changed, 1,769 insertions(+), and 364 deletions(-)

v0.6.0...v0.6.1

7 contributors

DCRDEX v0.6.0

17 Apr 04:29
Compare
Choose a tag to compare

DCRDEX v0.6.0

April 4, 2023

Important Notices

UPGRADING: If updating from a previous version, you will not be able to open the upgraded dexc.db file in the previous version due to encoding changes. Make a backup if you wish to have the ability to go back to a v0.5.x release.

Zcash: If using an external Zcash wallet (with your own zcashd process), you must run zcashd with -allowdeprecated=getnewaddress -allowdeprecated=getrawchangeaddress. A future DCRDEX patch release will provide full support to zcashd v5.4.2 without this flag.

Always record the "seed" that is generated by the DEX client on initialization (when you set your password the first time in the browser window). This is a string of characters that is used to derive DEX account identities and initialize any native/built-in wallets you create in the DEX client. You must have this seed to recover funds that you receive in such wallets if your lose access to your DEX client's data folder.

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

  • If using external wallets, never shut them down while dexc is running. Always stop dexc before stopping your wallets.
  • If you have to restart dexc with active orders or swaps, you must immediately login again with your app password when dexc starts up.
  • There is an "inaction timeout" when it becomes your client's turn to broadcast a transaction, so be sure not to stop dexc or lose connectivity for too long or you risk having your active orders and swaps/matches revoked. If you do have to restart dexc, just remember to login as soon as you start it up again.
  • Only one dexc process should be running for a given user account at any time. For example, if you have identical dexc configurations on two computers and you run dexc and login on both, neither dexc instance will be adequately connected to successfully negotiate swaps.
  • Order history is not synchronized between different client installations.

Highlights

Read more

DCRDEX v0.5.9

23 Feb 14:01
Compare
Choose a tag to compare

DCRDEX v0.5.9

This release is being cut with v0.6 just around the corner so that we can have automatically deployed Docker images for Umbrel. However, there are many other fixes in this release that we have decided to backport from v0.6 development.

Please read the v0.5.0 release notes for a full list of changes since v0.4.

For important information and an introduction to DCRDEX, read the initial release (v0.1.0) notes.

Until signed binaries become available from https://github.com/decred/decred-binaries/releases (they will be after v1.7.5), download the file for your distribution below.

NOTE: This release includes an experimental downloadable executable for Windows, the dexc-tray archive, which starts the DEX client with no terminal, and with a system tray icon. For Windows users, this should feel more natural. See #1828 for more info.

dex-tray-w11

Updates

  • Automatic Docker release image building and publication. When new GitHub releases are created, a Docker image of the client software is automatically built and published to https://hub.docker.com/r/decred/dcrdex/tags. (89942f0, 189d35b, ebbbc3e, a6ae166, a663f09, cfbb37c, 83af2ea, a9672d6, fe308ad)

  • Improved client database compaction. On shutdown, client databases will be compacted more frequently. The first time you shutdown with this release, you are likely to see a compaction. This may cause shutdown to take longer than normal, so please be patient. This may save significant disk space. (dcdc4c4)

  • Reduce lock contention on the wallet "driver" accesses. Performance may be improved in certain scenarios. (2d99cc4)

  • Build and test with Go 1.20. (8a5c11c, 15998d6)

  • The "best case" swap fee estimates now reflect the actual best case where a multi-lot order is matched with another multi-lot order. Previously it was reporting the fees for when a multi-lot order was matched with multiple orders, but using a batch transaction, which is better than the worst case of multiple un-batched swaps, but still not the best case. (9c3e9ca)

  • Handle user inputs for a DEX host that contains extra leading or trailing spaces. (da7e768)

  • Work around quirks of certain MacOS versions where TLS certificate errors happen unexpectedly, or are not reported with the proper types. (8c30008)

  • Spot price notifications for markets involving unknown assets are not logged. This will be common when a server is updated with support for ETH and ERC20, but an older client lacks support. (108a81e)

  • Balance notifications that contain no text message are not logged on the backend. The data is still displayed on the frontend. (fa877c2)

  • Frontend build system dependency updates. (28063b2)

  • Backend dependency updates with security fixes. (535211f)

  • Update the GitHub actions (continuous integration and testing) to avoid a deprecated command. (465c2c6)

  • If client startup fails to load existing accounts from the database file, the error is returned and the application exits rather than quietly starting up without the previously configured accounts. This could happen when attempting to use an upgraded database with an older version of the client software. (3a99c4f)

  • The root cause of a database error when attempting to store account information is now logged. (41f7a4e)

  • Add a swap fee rate sanity check to prevent attempting swaps with a fee rate of zero. (ff7cfe0)

  • Update the dcrd "addrmgr" dependency to improve performance of the native DCR wallet when there are very few good peers, as is often the case with testnet. (459fead)

Fixes

  • IMPORTANT Fix a rare but problematic deadlock (hang) in dcrwallet. (459fead)

  • Gracefully handle very old and previously unacknowledged notifications that were originally stored with a different binary encoding. This eliminates persistent logging of these invalid notifications. (0da6d6c)

  • Wallet reconfiguration was incomplete when there are active trades. (ef84b8e)

  • A rare error when unlocking UTXOs with external DCR and BTC wallets was not handled properly. (185a489)

  • Order fee estimates possibly showed large negative locked amounts in certain circumstances when trying a split transaction (pre-sizing outputs). (900574b)

  • Changing the application password was unnecessarily requiring a restart of the client. (0d42ab6)

  • Incorrect wallet synchronization progress was shown when all peers were lost. (72a5083)

  • Avoid a panic on 32-bit architectures (e.g. x86 and arm32) when fee rates are cached for an order book. (33fca32)

  • Fix a data race with the internal peer counter. (5005ae6)

  • Fix a rare data race with the swap confirmation counter when creating match notification. (06d2502)

  • Fix a rare data race in the BTC unit tests. (9a612a3)

  • Fix the summary for order and match archival showing the wrong final count of archived items. (facce62)

Server

  • Fix a rare shutdown deadlock on a DEX host. (13d1988)

Code Summary

38 commits, 54 files changed, 570 insertions(+), and 372 deletions(-)

v0.5.8...v0.5.9

6 contributors

dcrdex v0.5.8

19 Dec 22:24
Compare
Choose a tag to compare

DCRDEX v0.5.8

This release contains a minor fix for handling of flaky fiat exchange rate sources, and the addition of minor dexc options intended for advanced users.

Please read the v0.5.0 release notes for a full list of changes since v0.4.

For important information and an introduction to DCRDEX, read the initial release (v0.1.0) notes.

Until signed binaries become available from https://github.com/decred/decred-binaries/releases (they will be after v1.7.5), download the file for your distribution below.

NOTE: This release includes an experimental downloadable executable for Windows, the dexc-tray archive, which starts the DEX client with no terminal, and with a system tray icon. For Windows users, this should feel more natural. See #1828 for more info.

dex-tray-w11

Features

  • Add two new core.Config options aimed at improving startup and shutdown depending on the user's use case:

    • NoAutoWalletLock skips locking the wallet on shutdown. This can be helpful if the user wants the wallet to remain unlocked. e.g. They started with the wallet unlocked, or they intend to start again and wish to avoid the time to unlock a locked wallet on startup.
    • NoAutoDBBackup skips creation of a backup DB file on shutdown. This is useful if the consumer is using the BackupDB method, or simply creating manual backups of the DB file after shutdown.

    These options are intended for direct client/core.Core consumers, such as headless applications that drive Core directly instead of via the browser UI. However, they are accessible via the dexc switches --no-wallet-lock and --no-db-backup. (c35709c, 46f5489)

  • Add the core.Config.UnlockCoinsOnLogin option to indicate that on wallet connect during login, or on creation of a new wallet, all coins with the wallet should be unlocked. This option is accessible via the --release-wallet-coins switch. (9870a0c)

Fixes

  • Fix handling of fiat exchange rate sources that intermittently fail. (2ae50bb)

Server

No server changes.

Code Summary

6 commits, 19 files changed, 172 insertions(+), and 216 deletions(-)

v0.5.7...v0.5.8

2 contributor

dcrdex v0.5.7

29 Nov 01:02
Compare
Choose a tag to compare

DCRDEX v0.5.7

Please read the v0.5.0 release notes for a full list of changes since v0.4.

For important information and an introduction to DCRDEX, read the initial release (v0.1.0) notes.

Until signed binaries become available from https://github.com/decred/decred-binaries/releases (they will be after v1.7.5), download the file for your distribution below.

Fixes

  • IMPORTANT Fix the client revoking trade orders when order revocation messages for a cancel order targeting the trade are received from the server. (0b10fd8)
  • Add automatic order cancellation when the server reports an order that the client does not have loaded and cannot locate. (0d2b78c)

Server

  • Fix DOGE and LTC not using the default number of fee confirmations, resulting in a computationally expensive median fee computation. (3e449aa)

Code Summary

4 commits, 12 files changed, 199 insertions(+), and 83 deletions(-)

v0.5.6...v0.5.7

1 contributor

dcrdex v0.5.6

29 Nov 00:59
Compare
Choose a tag to compare

DCRDEX v0.5.6

Please read the v0.5.0 release notes for a full list of changes since v0.4.

For important information and an introduction to DCRDEX, read the initial release (v0.1.0) notes.

Fixes

  • In mixed DCR wallet configurations, ensure the unmixed account is unlocked as well. This is important for individually-encrypted wallet account setups, as opposed to full wallet encryption. (d1c2e9a, ac6461f)
  • When synchronizing a native/built-in Decred wallet, determine final synchronization status more accurately so that it does not appear the wallet is ready before it has actually discovered all address usage. (4411608)

Code Summary

4 commits, 8 files changed, 24 insertions(+), and 12 deletions(-)

v0.5.5...v0.5.6

2 contributors

dcrdex v0.5.5

01 Nov 20:30
Compare
Choose a tag to compare

DCRDEX v0.5.5

IMPORTANT: This patch release includes a critical fix for all Bitcoin wallets.

Please read the v0.5.0 release notes for a full list of changes since v0.4.

For important information and an introduction to DCRDEX, read the initial release (v0.1.0) notes.

Fixes

  • Blocks with taproot transactions with too many witness items no longer fail to deserialize. This was caused by an upstream bug in the btcsuite/btcd/wire package. See btcsuite/btcd#1907 (04aa59f)
  • Revert to a working revision of goleveldb. A bad revision of goleveldb was required by go-ethereum 1.10.19, and a working revision was restored in 1.10.21. This manually gets us off the broken goleveldb revision, and updates to go-ethereum 1.10.25 at the same time. See ethereum/go-ethereum#25413 (98a9081)

Code Summary

3 commits, 10 files changed, 39 insertions(+), and 54 deletions(-)

v0.5.4...v0.5.5

1 contributor