decred.org/dcrdex@v1.0.5/docs/release-notes/release-notes-0.2.0.md (about)

     1  # DCRDEX v0.2.0 (beta)
     2  
     3  May 7, 2021
     4  
     5  For a high level introduction to DCRDEX, please read the [0.1.0 release notes](release-notes-0.1.0.md).
     6  
     7  ## Highlights
     8  
     9  This release includes a large number of improvements to the UI, the
    10  communications protocol, and software design.
    11  
    12  The most notable new features are:
    13  
    14  - Numerous UI and usability enhancements including responsive design and depth
    15    chart interactivity
    16  - Support client control by the Decrediton GUI wallet and use of its accounts
    17  - Experimental Bitcoin Cash (BCH) support
    18  - Initial changes to support SPV (light) wallets in the next release
    19  - Account import/export
    20  
    21  The latest 1.6 release of dcrd and dcrwallet is required for this release of
    22  DCRDEX. At the time of release, this corresponds to the v1.6.2 releases.
    23  Bitcoin Core 0.20 and 0.21 are both supported.
    24  
    25  ## Important Notices
    26  
    27  Although DCRDEX looks and feels like a regular exchange, the "decentralized"
    28  aspect brings an expanded role to the client. Please take the time to read and
    29  understand the following:
    30  
    31  - Ensure your nodes (and wallets) are fully **synchronized with the blockchain
    32    network before placing orders**.
    33  - **Never shutdown your wallets with dexc running**. When shutting down, always
    34    stop dexc before stopping your wallets.
    35  - If you have to restart dexc with active orders or swaps, you must
    36    **immediately login again with your app password when dexc starts up**.
    37  - There is an "inaction timeout" when it becomes your client's turn to broadcast
    38    a transaction, so be sure not to stop dexc or lose connectivity for longer
    39    than that or you risk having your active orders and swaps/matches revoked. If
    40    you do have to restart dexc, remember to login as soon as you start it up
    41    again.
    42  - Only one dexc (client) process should be running for a given user account at
    43    any time. For example, if you have identical dexc configurations on two
    44    computers and you run dexc and login on both, neither dexc instance will be
    45    adequately connected to successfully negotiate swaps. Also note that order
    46    history is not synchronized between different installations.
    47  - Your DEX server accounts exist inside the dexc.db file, the location of which
    48    depends on operating system, but is typically in ~/.dexc/mainnet/dexc.db or
    49    %HOMEPATH%\Local\Dexc\mainnet\dexc.db. Do not delete this file.
    50  - If you use a non-default bitcoin wallet name, don't forget to set it in
    51    bitcoin.conf with a `wallet=wallet_name_here` line so that bitcoind
    52    will load it each time it starts. Otherwise, dexc will give you a "wallet not
    53    found" error on startup and login.
    54  - bitcoind's "smart" fee estimation needs plenty of time to warm up or it is not
    55    so smart. When possible, keep your bitcoind running for at least 6 blocks,
    56    especially if had not been running for more than an hour, or ensure that the
    57    value returned from a bitcoin-cli call to `estimatesmartfee 1` returns a
    58    `"feerate"` close to what <https://mempool.space/> reports as "High priority".
    59  
    60  ## Client (dexc)
    61  
    62  ### Features and Improvements
    63  
    64  - Experimental support for Bitcoin Cash (BCH).
    65    ([542ed9b](https://github.com/decred/dcrdex/commit/542ed9ba9ef8db3d8f5d3e36b3078c9fa3d5888f))
    66  - Show confirmations for swaps transactions on the Order page when a swap has
    67    not yet reached the required number of confirmations.
    68    ([ecbfebd](https://github.com/decred/dcrdex/commit/ecbfebdd6f3184b51d6f72011b488edd73e3c5cb))
    69  - Open dialogs can be closed by hitting the "Escape" key.
    70    ([7c978cd](https://github.com/decred/dcrdex/commit/7c978cd8436c3fab9e90a80d1a17502e945e76f8))
    71  - Allow changing the dex client "application password".
    72    ([8d7163c](https://github.com/decred/dcrdex/commit/8d7163cb9022f9f19ef706f33251a32d228d1c02))
    73  - Responsive browser UI design.
    74    ([c91bde4](https://github.com/decred/dcrdex/commit/c91bde4446a5d3e6c3db20a805da380d4c6bf835))
    75  - Differentiate between buy/sell orders in confirmation modal dialog.
    76    ([2bdf81f](https://github.com/decred/dcrdex/commit/2bdf81f94262c34a345c84daf4def921e41c7107))
    77  - Clearer revocation notifications.
    78    ([c8c9729](https://github.com/decred/dcrdex/commit/c8c9729ba6adb5a1803a8a7e9de30e8aaa81c942))
    79  - Raw transaction data is now transmitted to counterparties in the `'audit'` and
    80    `'match_status'` requests. This is a prerequisite for SPV clients.
    81    ([3704513](https://github.com/decred/dcrdex/commit/3704513bc63facc234edabf742ec1f87ef80b35d))
    82  - More chart interactivity. (a) Indicators on the depth chart for the user's
    83    orders. When the mouse hovers near the indicator, the order is highlighted in
    84    the "Your Orders" table. Conversely, when the mouse hovers over a row in the
    85    "Your Orders" table, the indicator is highlighted on the chart. (b) Move the
    86    legend and hover info to the top. (c) When a rate is entered in the order form
    87    for a limit order, display a line indicator at that rate on the depth chart.
    88    (d) When the user hovers over an order in the buy/sell tables, display an
    89    indicator at that rate on the depth chart. (e) Last zoom level is saved across
    90    markets and reloads. (f) Display the total buy/sell volume.
    91    ([fb6f3ea](https://github.com/decred/dcrdex/commit/fb6f3eaa7dae7d043aae8ceb5771638554dd5d1c),
    92    [08ec4ac](https://github.com/decred/dcrdex/commit/08ec4ac99f06aa23d654cd3855c62c13945b2a2e))
    93  - Multiple authorized browser sessions are now permitted. This refers to logging
    94    in to dexc from two different browsers that do not share a cookie store. This
    95    is now permitted, however, signing *out* of one session signs out of all
    96    sessions.
    97    ([030173b](https://github.com/decred/dcrdex/commit/030173b828fabb0cb4b2c9884bbeaa91b1ce7f11))
    98  - A wallet's connection settings and private passphrase can be changed at the
    99    same time. Developers should see the `ReconfigureWallet` change.
   100    ([761e3e1](https://github.com/decred/dcrdex/commit/761e3e13981a9595623718036913fe54a2c2d764))
   101  - Add account import/export functions.
   102    ([1a38c4d](https://github.com/decred/dcrdex/commit/1a38c4decea6c0c02370edf4ed4eee833afbe8c8))
   103  - Add account disable function.
   104    ([f414a87](https://github.com/decred/dcrdex/commit/f414a87a3991d8abbdd8347dc46fe350c96d9981))
   105  - Starting dexc when a configured DEX server is unreachable starts a reconnect
   106    attempt loop. Previously it was necessary to restart dexc later and hope the
   107    server was back.
   108    ([c782ffb](https://github.com/decred/dcrdex/commit/c782ffb0a8e4b8dd11360c8a6394a6b64c91cd3e))
   109  - Account-based DCR wallet locking support. With dcrwallet 1.6, accounts may be
   110    individually encrypted, with a unique password, in contrast to whole-wallet
   111    locking. This allows working with such accounts by using the `accountunlocked`
   112    dcrwallet RPC to determine the locking scheme for an account, and the
   113    `unlockaccount`/`lockaccount` RPCs instead of `walletpassphrase`/`walletlock`.
   114    The "beta" simnet DCR harness now uses an individually-encrypted "default"
   115    account.
   116    ([ff4e76c](https://github.com/decred/dcrdex/commit/ff4e76cc509e0019f1239316db9e8c7639faf38f),
   117    [37cdc9e](https://github.com/decred/dcrdex/commit/37cdc9e640e032ec9b0f0f2da12be637e0f696ea))
   118  - Handling of new server-provided fee rates. This will support SPV clients, and
   119    helps ensure that both redeem and order funding transactions are not created
   120    with low fee rates when the client's wallet/node is not providing good
   121    estimates.
   122    ([79a1cb0](https://github.com/decred/dcrdex/commit/79a1cb016f8d08354610767e890c78a9bd3470b4))
   123  - Network-specific loopback IPs for the webserver and RPC server listen
   124    addresses. Now by default, dexc listens on 127.0.0.1 for mainnet, 127.0.0.2
   125    for testnet, and 127.0.0.3 for simnet. Users are still be able to specify
   126    custom addresses with `webaddr` and `rpcaddr`.
   127    ([08ec4ac](https://github.com/decred/dcrdex/commit/08ec4ac99f06aa23d654cd3855c62c13945b2a2e))
   128  - Maximum order size estimates on order dialog. Get maximum order estimates
   129    based on wallet balances and, in the case of buy orders, the rate in the rate
   130    input field. The data is shown in the UI as a small message above the rate
   131    field. When you click on the label, the quantity fields are pre-populated with
   132    the max order.
   133    ([920d1ac](https://github.com/decred/dcrdex/commit/920d1ac50b748ea17c177fe5cad2259300361fef))
   134  - dexcctl / RPC server: Add a matches list to the `myorders` response.
   135    ([3bef6ba](https://github.com/decred/dcrdex/commit/3bef6ba8ff8df2af7a8c37fd1c43e6119a1af32f))
   136  - When orders are placed, the client remembers the expected maximum fee rate,
   137    and verifies that the rate provided by the server at match time does not
   138    exceed this amount.
   139    ([2123f10](https://github.com/decred/dcrdex/commit/2123f10a509bbf26ba3e74d3a7583b6524ba9191))
   140  - Add a "fee rate limit" setting to each wallet that is checked against the max
   141    fee rate set by the server's config. Orders are blocked by the client if the
   142    server specifies a max fee rate that exceeds the client's limit.
   143    ([414ffcc](https://github.com/decred/dcrdex/commit/414ffccd83972718d9c3058526101ab745eb36d2))
   144  - On shutdown, the active orders are logged, and inactive trades have their
   145    coins released to the wallet if they were not already.
   146    ([41749a8](https://github.com/decred/dcrdex/commit/41749a83afb9f234c3f5c5755367df3beb77d8f1))
   147  - Add sample config files. (also server)
   148    ([792602b](https://github.com/decred/dcrdex/commit/792602bdab53f2b933f51142df79432fada378e8))
   149  - The `'init'` and `'redeem'` requests are now run asynchronously so most other
   150    actions are not blocked while waiting for a response. This is generally an
   151    internal change, but it may improve the overall responsiveness of the dexc
   152    application.
   153    ([a0538bb](https://github.com/decred/dcrdex/commit/a0538bbef5460dd08342b8c99851bc6076faea73))
   154  - Preimage request handling is reworked to prevent blocking for a long period
   155    given an incoming preimage request for an unknown order.
   156    ([1b66492](https://github.com/decred/dcrdex/commit/1b66492b1ef53670f32c19b484e7366fab977993))
   157  - Add a custom webserver "site" directory argument.
   158    ([4506406](https://github.com/decred/dcrdex/commit/4506406d974aaa8463a2e924ccdf1147d8078c45))
   159  - Favor confirmed UTXOs in BTC order funding. This is primarily an internal
   160    change, but it can defend against swaps that take too long to confirm.
   161    ([3f6e429](https://github.com/decred/dcrdex/commit/3f6e4299c81751558891bcc209cd50825e10183c))
   162  - "Long" execution times (more than 250ms) for incoming message handling and
   163    track ticks are now logged.
   164    ([529cb0d](https://github.com/decred/dcrdex/commit/529cb0d17154f3a8a391848fa8eb2ff65453ed9c))
   165  
   166  ### Developer
   167  
   168  - When `Core` is shut down, wallets are locked when the `Run` method returns.
   169    Previously, wallets were only locked if the consumer used `PromptShutdown`.
   170    ([8976d8d](https://github.com/decred/dcrdex/commit/8976d8d166706ba626cee437d8765fa3ca3794e4))
   171    This change was in 0.1.5, but it is reiterated here as it is an significant
   172    change in behavior that Go consumers should note.
   173  - Updates to the `User` struct returned by the `User` and `Exchanges` methods of
   174    `client/core.Core`.  The `client/core.Market` has replaced the
   175    `{Base,Quote}{Order,Contract}Locked` fields with methods.
   176    ([167efd4](https://github.com/decred/dcrdex/commit/167efd491eb5eed4c1980995be6b48ea5a780f2a))
   177  - When specifying TLS certificates, allow either a filename or the contents of
   178    the certificate file. This applies to the `Register`, `GetFee`, and
   179    `GetDEXConfig` methods of `client/core.Core`.
   180    ([44a3363](https://github.com/decred/dcrdex/commit/44a33633e40bee15e70b700b982c69833317692f))
   181  - Notification subjects are now package-level constants.
   182    ([3aef72d](https://github.com/decred/dcrdex/commit/3aef72d00790b2d8b0354efaf844a8fd08f3bdc6))
   183  - `ReconfigureWallet` has a new pass input (`nil` indicates no password change).
   184    ([761e3e1](https://github.com/decred/dcrdex/commit/761e3e13981a9595623718036913fe54a2c2d764))
   185  - New order fee estimate API. See the new `(*Core).PreOrder` method and the new
   186    returned `OrderEstimate` type. Also see the `PreSwap` and `PreRedeem` methods
   187    of `client/asset.Wallet`, and the new types of the same name.
   188    ([5394cea](https://github.com/decred/dcrdex/commit/5394ceaa2a0e69518cabb2a3ae4fdb2164a6a08e))
   189  - New `isinitialized` http API endpoint and `Core` method.
   190    ([b767a23](https://github.com/decred/dcrdex/commit/b767a23f0c89ec54a1f60e61c9bd21d05daba906))
   191  - Add the `(*Core).GetDEXConfig` method and a corresponding http API endpoint
   192    `getdexinfo` the functions similar to `getfee` by making a temporary
   193    connection to a DEX with *no existing account*, except that it returns the
   194    server's entire config.
   195    ([d85f6bc](https://github.com/decred/dcrdex/commit/d85f6bc34d74773a56500089ff4d12e0e3d3380e))
   196  - Check the server's API version and each asset's version that are now returned
   197    in the server's `'config'` response.
   198    ([e59b47f](https://github.com/decred/dcrdex/commit/e59b47fe777ba94741a38da62b06edd317101873),
   199    [205e802](https://github.com/decred/dcrdex/commit/205e8022adcaf8e7a5bda026e80d43edc3c07497),
   200    [1bc0cc9](https://github.com/decred/dcrdex/commit/1bc0cc9e9c1ffab8b6ed37dcad96cc136bbcf33f))
   201  - Only active orders are listed by the `User` and `Exchanges` methods of `Core`.
   202    Completed orders that are pending retirement are excluded.
   203    ([6358d97](https://github.com/decred/dcrdex/commit/6358d97fe1a1977c363519a98c15273c0612a6b2))
   204  - Add profiling switches to dcrdex. A CPU profile file may be specified with
   205    `--cpuprofile`. The http profiler may be started with `--httpprof`.
   206    ([c17baf9](https://github.com/decred/dcrdex/commit/c17baf93a76f6803af1d354bf0d9d7a51332e475))
   207  - (internal) DCR asset backends now use `rpcclient/v6`, which provide cancelable requests.
   208    ([312397a](https://github.com/decred/dcrdex/commit/312397a56d307f71c12696bcaae126f4629c7aea),
   209    [9d65d55](https://github.com/decred/dcrdex/commit/9d65d55c8f3b0ca613fb3a7d401346706d65d7e7))
   210  - (internal) BTC's asset backend now uses Decred's `rpcclient` package for
   211    cancellation capability. All request now use `RawRequest`.
   212    ([cefe6a5](https://github.com/decred/dcrdex/commit/cefe6a5ced3cce460311d3b50dffdfd4ce9aa22f))
   213  - (internal) All incoming response and notification message handlers are wrapped
   214    for panic recovery.
   215    ([829a661](https://github.com/decred/dcrdex/commit/829a661a4c134ad575f9fdbac67b812c73a53589))
   216  - (internal) Message unmarshalling is now more robust with respect to null
   217    payloads.
   218    ([9bf1a3e](https://github.com/decred/dcrdex/commit/9bf1a3eeacb86247e8b33067aabcf7fc0cf59f8a))
   219  - Many third party Go dependency updates.
   220    ([go.mod diff](https://github.com/decred/dcrdex/compare/4517832...release-v0.2#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6))
   221  - Update site build system to Webpack 5, and update most other deps.
   222    ([a8e76ea](https://github.com/decred/dcrdex/commit/a8e76eacdecf4e30d96248a885c13a27f81a867e))
   223  - Add an ETH simnet harness for support of upcoming ETH support.
   224    ([ea10f5a](https://github.com/decred/dcrdex/commit/ea10f5a032ddc365f6982de2f0956e560a26dc2e))
   225  - The simnet harnesses now listen on all interfaces.
   226    ([4e246cf](https://github.com/decred/dcrdex/commit/4e246cfbef547f41fee5bad2ab397ab80d89dc2a))
   227  - The Decred wallet harnesses now start dcrwallet with http profiling enabled.
   228    ([b96f546](https://github.com/decred/dcrdex/commit/b96f546f3ff67c3fed3f013023c395daab115fc0))
   229  - Rework the `db.MetaMatch` struct.
   230    ([db3df62](https://github.com/decred/dcrdex/commit/db3df625eb736442a464dcc3aea424e8a8491a78))
   231  
   232  ### Fixes
   233  
   234  In addition to numerous fixes that were also in the 0.1.x releases, the
   235  most notable fixes are:
   236  
   237  - No longer show the Register dialog if the server for the only registered DEX
   238    happens to be down at the time.
   239    ([b6ea0ea](https://github.com/decred/dcrdex/commit/b6ea0eaccd92f0c1fe8058a943013217cbf38b0e))
   240  - Correct handling of IPv6 listen addresses. (also on server)
   241    ([f0ef965](https://github.com/decred/dcrdex/commit/f0ef965103e035052c5034d0486b44881a0c1067))
   242  - Update the browser UI when orders are placed via dexcctl.
   243    ([8cc1502](https://github.com/decred/dcrdex/commit/8cc1502b0bb511513c0cf70117cbc29b0952f8db))
   244  - Better error reporting on the DEX registration dialog.
   245    ([2617d75](https://github.com/decred/dcrdex/commit/2617d750f5207d52dfb7afab82634253a99b514c))
   246  - More robust recovery for orders that become unfunded (e.g. user spends coins
   247    that were reserved for an order).
   248    ([122277e](https://github.com/decred/dcrdex/commit/122277ec0eca5e5cb8151536aa2e2532d15d9af2))
   249  - No longer prematurely broadcast Decred refund transactions.
   250    ([03cdf2d](https://github.com/decred/dcrdex/commit/03cdf2d473fc7546892112d78cfa3cfeb6a89605))
   251  - Commitment checksum handling in the presence of missed preimage is now handled
   252    the same way as on the server by including the all epoch order commitments in
   253    the csum computation, not just the ones with revealed preimages.
   254    ([25e3679](https://github.com/decred/dcrdex/commit/25e3679e4e909adf5f0c34821ef14b34357fab42),
   255    [7d71ffd](https://github.com/decred/dcrdex/commit/7d71ffd5221e0965aefd532e05d6520b17302a54))
   256  - Never show negative confirmations for swap transactions even before they have
   257    been checked.
   258    ([fb39b97](https://github.com/decred/dcrdex/commit/fb39b97f1d73e942f6dd79ef0cf0ae4e1a061fcc))
   259  - The mouse wheel only zooms when hovering over the depth chart, no longer
   260    scrolling the page at the same time.
   261    ([736b005](https://github.com/decred/dcrdex/commit/736b005151cf3501f0724e36f070e4b74ac365e5))
   262  
   263  ## Server (dcrdex)
   264  
   265  - `Swapper` resumes on startup from DB rather than a state file.
   266    ([a676e07](https://github.com/decred/dcrdex/commit/a676e074a6845a2b05b3597856d226a22f3c9234))
   267  - Market data API endpoints. `/spots` is the spot price and booked volume of all
   268    markets. `/candles` is candlestick data, available in bin sizes of 24h, 1h,
   269    15m, and per-epoch sticks. e.g. `/candles/dcr/btc/15m`. `/orderbook` is
   270    already a WebSocket route, but is now also accessible by HTTP. An example URL
   271    is `/orderbook/dcr/btc`. `/config` is another WebSocket route that is also now
   272    available over HTTP too.
   273    ([08afde3](https://github.com/decred/dcrdex/commit/08afde3f7bb5d9df5579621ed0e7ae9850424744))
   274  - Configurable trade limits with the new `--inittakerlotlimit` and
   275    `--abstakerlotlimit` dcrdex switches, and `userBookedLotLimit` set in
   276    markets.json.
   277    ([5771186](https://github.com/decred/dcrdex/commit/5771186321eb7b969685fc722ffdb65d42a64539))
   278  - Provide API and asset versions in the `'config'` response.
   279    ([e59b47f](https://github.com/decred/dcrdex/commit/e59b47fe777ba94741a38da62b06edd317101873),
   280    [205e802](https://github.com/decred/dcrdex/commit/205e8022adcaf8e7a5bda026e80d43edc3c07497),
   281    [1bc0cc9](https://github.com/decred/dcrdex/commit/1bc0cc9e9c1ffab8b6ed37dcad96cc136bbcf33f))
   282  - Begin sending `TxData` (raw tx) in audit and match_status requests to
   283    counterparty. This will support SPV clients.
   284    ([370451](https://github.com/decred/dcrdex/commit/3704513bc63facc234edabf742ec1f87ef80b35d))
   285  - Experimental Bitcoin Cash (BCH) support.
   286    ([542ed9b](https://github.com/decred/dcrdex/commit/542ed9ba9ef8db3d8f5d3e36b3078c9fa3d5888f))
   287  - Version the DB scheme and implement initial updates to populate historical
   288    market data in the `epoch_reports` table.
   289    ([d000f19](https://github.com/decred/dcrdex/commit/d000f196923497122a71790e8c8f0c89503cfaaf))
   290  - The outgoing preimage request now includes the commitment for the preimage
   291    being requested.
   292    ([850e8a6](https://github.com/decred/dcrdex/commit/850e8a6779dd537ecb820974606a9f7294ca155a))
   293  - Provide fee rate estimates to the clients in certain messages: `orderbook`,
   294    `epoch_report`, and the new `fee_rate` route. With this data provided to the
   295    clients, minimum fee rates of zero-conf funding coins are enforced.
   296    ([79a1cb0](https://github.com/decred/dcrdex/commit/79a1cb016f8d08354610767e890c78a9bd3470b4),
   297    [9885bf1](https://github.com/decred/dcrdex/commit/9885bf1ed697bd82ba300ed33c98647c2413df8f))
   298  - Fix market suspension not purging the outgoing book router's orders list. The
   299    actual book was purged, but clients would still pull a book snapshot listing
   300    orders if they restarted after a purge.
   301    ([a25d14e](https://github.com/decred/dcrdex/commit/a25d14e3a397268bae8a8e899b836d53e0219d79))
   302  - Order priority queue automatic reallocation and smaller initial capacity.
   303    ([3750cce](https://github.com/decred/dcrdex/commit/3750cce2abeed01879d26b54483b85a2f78f9187))
   304  - New administrative endpoints: `orderbook`, `epochorders`, and `matches`.
   305    ([0ce3ec7](https://github.com/decred/dcrdex/commit/0ce3ec70024f48fc21b9e9e8aee925e31e2ceb02))
   306  - Add order ID to cancel route error message.
   307    ([0a7157b](https://github.com/decred/dcrdex/commit/0a7157bb2c2511ac85842e88bb7ead0e127a85ae))
   308  - Various test harness improvements.
   309    ([ca9882d](https://github.com/decred/dcrdex/commit/ca9882d36463c94375c200ca09cf1a44740f6d1a))
   310  - Active order counts are logged when a user authenticates.
   311    ([945cb4a](https://github.com/decred/dcrdex/commit/945cb4aa618990c9ab66ee09954d0357e479bc6c))
   312  - Drop the dependency on the deprecated golang.org/x/crypto/ssh/terminal
   313    repository.
   314    ([cae9f5a](https://github.com/decred/dcrdex/commit/cae9f5a12ef24c8f4f0d44a021768323b91aaa1f))
   315  - The /api/market/{marketID}/matches endpoint now returns decoded swap/redeem
   316    coin IDs and an idiomatic JSON response.
   317    ([a1fbdc0](https://github.com/decred/dcrdex/commit/a1fbdc023c2dfd95d89ab66d91594be5d98ce011))
   318  
   319  ## Build requirements
   320  
   321  - Go 1.15 or 1.16
   322  - Node 14 is the minimum supported version for building the site assets.
   323  - dcrd and dcrwallet must *still* be built from their `release-v1.6` branches.
   324  - The minimum required dcrwallet RPC server version is 8.5.0, which corresponds
   325    to the v1.6.2 patch release of dcrwallet, but the latest `release-v1.6.x` tag
   326    should be used.
   327  
   328  ## Code Summary
   329  
   330  166 commits, 287 files changed, 40,296 insertions(+), 18,072 deletions(-)
   331  
   332  <https://github.com/decred/dcrdex/compare/4517832...release-v0.2>
   333  
   334  9 contributors
   335  
   336  - Amir Massarwa (@amassarwi)
   337  - Brian Stafford (@buck54321)
   338  - David Hill (@dajohi)
   339  - Joe Gruffins (@JoeGruffins)
   340  - Jonathan Chappelow (@chappjc)
   341  - Kevin Wilde (@kevinstl)
   342  - @peterzen
   343  - Victor Oliveira (@vctt94)
   344  - Wisdom Arerosuoghene (@itswisdomagain)