We outline an initial scaling mechanism for Dash. After deployment and activation, Dash will be able to handle double the transactions it can currently handle. Together with the faster block times, Dash we will be prepared to handle eight times the traffic of Bitcoin.
There are few changes in existing RPC in this release:
- There is no more `bcconfirmations` field in RPC output and `confirmations` shows blockchain only confirmations by default now. You can change this behaviour by switching new `addlockconf` param to `true`. There is a new rpc field `instantlock` which indicates whether a given transaction is locked via InstantSend. For more info and examples please see https://github.com/dashpay/dash/doc/instantsend.md;
-`gobject list` and `gobject diff` accept `funding`, `delete` and `endorsed` filtering options now, in addition to `valid` and `all` currently available;
-`vin` field in `masternode` commands is renamed to `outpoint` and shows data in short format now;
-`getblocktemplate` output is extended with versionbits-related information;
- Output of wallet-related commands `validateaddress` is extended with optional `hdkeypath` and `hdchainid` fields.
-`masternodelist info` shows additional information about sentinel for each masternode in the list;
-`masternodelist pubkey` shows pubkey corresponding to masternodeprivkey for each masternode in the list;
-`gobject check` allows to check proposal data for correctness before preparing/submitting the proposal, `gobject prepare` and `gobject submit` should also perform additional validation now though;
-`setnetworkactive` allows to turn all network activity on and off;
-`dumphdinfo` displays some information about HD wallet (if available).
Algorithm for selecting inputs was slightly changed in [`6067896ae`](https://github.com/dashpay/dash/commit/6067896ae) ([#1248](https://github.com/dashpay/dash/pull/1248)). This should allow user to get some mixed funds much faster.
We backported some performance improvements from Bitcoin Core and aligned our codebase with their source a little bit better. We still do not have all the improvements so this work is going to be continued in next releases.
This release includes experimental implementation of BIP39/BIP44 compatible HD wallet. Wallet type (HD or non-HD) is selected when wallet is created via `usehd` command-line option, default is `0` which means that a regular non-deterministic wallet is going to be used. If you decide to use HD wallet, you can also specify BIP39 mnemonic and mnemonic passphrase (see `mnemonic` and `mnemonicpassphrase` command-line options) but you can do so only on initial wallet creation and can't change these afterwards. If you don't specify them, mnemonic is going to be generated randomly and mnemonic passphrase is going to be just a blank string.
**WARNING:** The way it's currently implemented is NOT safe and is NOT recommended to use on mainnet. Wallet is created unencrypted with mnemonic stored inside, so even if you encrypt it later there will be a short period of time when mnemonic is stored in plain text. This issue will be addressed in future releases.
- [`11afc8f4b`](https://github.com/dashpay/dash/commit/11afc8f4b) Minimal fix to slow prevector tests as stopgap measure
- [`11121747b`](https://github.com/dashpay/dash/commit/11121747b) build: fix qt5.7 build under macOS (#1469)
- [`5988e1e7f`](https://github.com/dashpay/dash/commit/5988e1e7f) Increase minimum debug.log size to 10MB after shrink. (#1480)
- [`a443d4e2d`](https://github.com/dashpay/dash/commit/a443d4e2d) Backport Bitcoin PRs #6589, #7180 and remaining part of #7181: enable per-command byte counters in `CNode` (#1496)
- [`f9730cb2e`](https://github.com/dashpay/dash/commit/f9730cb2e) Increase test coverage for addrman and addrinfo (#1497)
- [`a12491448`](https://github.com/dashpay/dash/commit/a12491448) Eliminate unnecessary call to CheckBlock (#1498)
- [`b0843c397`](https://github.com/dashpay/dash/commit/b0843c397) Backport Bincoin PR#7348: MOVE ONLY: move rpc* to rpc/ + same for Dash-specific rpc (#1502)
- [`f65017cfe`](https://github.com/dashpay/dash/commit/f65017cfe) Backport Bitcoin PR#7349: Build against system UniValue when available (#1503)
- [`6af9955fa`](https://github.com/dashpay/dash/commit/6af9955fa) Backport Bitcoin PR#7696: Fix de-serialization bug where AddrMan is corrupted after exception (#1507)
- [`aa32f1dc9`](https://github.com/dashpay/dash/commit/aa32f1dc9) Remove bad chain alert partition check (#1529)
- [`d934ffb2f`](https://github.com/dashpay/dash/commit/d934ffb2f) Added feeler connections increasing good addrs in the tried table. (#1530)
- [`290fb3b57`](https://github.com/dashpay/dash/commit/290fb3b57) Backport Bitcoin PR#7942: locking for Misbehave() and other cs_main locking fixes (#1535)
- [`a9d771e49`](https://github.com/dashpay/dash/commit/a9d771e49) Backport Bitcoin PR#8085: p2p: Begin encapsulation (#1537)
- [`82851b439`](https://github.com/dashpay/dash/commit/82851b439) Backport Bitcoin PR#8049: Expose information on whether transaction relay is enabled in `getnetwork` (#1545)
- [`df6d458b8`](https://github.com/dashpay/dash/commit/df6d458b8) Backport Bitcoin PR#9260: Mrs Peacock in The Library with The Candlestick (killed main.{h,cpp}) (#1566)
- [`42c784dc7`](https://github.com/dashpay/dash/commit/42c784dc7) Backport Bitcoin PR#9289: net: drop boost::thread_group (#1568)
- [`105122181`](https://github.com/dashpay/dash/commit/105122181) Partially backport Bitcoin PR#9626: Clean up a few CConnman cs_vNodes/CNode things (#1591)
- [`76181f575`](https://github.com/dashpay/dash/commit/76181f575) Do not add random inbound peers to addrman. (#1593)
- [`589d22f2c`](https://github.com/dashpay/dash/commit/589d22f2c) net: No longer send local address in addrMe (#1600)
- [`b41d9eac2`](https://github.com/dashpay/dash/commit/b41d9eac2) Backport Bitcoin PR#7868: net: Split DNS resolving functionality out of net structures (#1601)
- [`b82b9787d`](https://github.com/dashpay/dash/commit/b82b9787d) Backport Bitcoin PR#8128: Net: Turn net structures into dumb storage classes (#1604)
- [`690cb58f8`](https://github.com/dashpay/dash/commit/690cb58f8) Backport Bitcoin Qt/Gui changes up to 0.14.x part 1 (#1614)
- [`9707ca5ce`](https://github.com/dashpay/dash/commit/9707ca5ce) Backport Bitcoin Qt/Gui changes up to 0.14.x part 2 (#1615)
- [`91d99fcd3`](https://github.com/dashpay/dash/commit/91d99fcd3) Backport Bitcoin Qt/Gui changes up to 0.14.x part 3 (#1617)
- [`4cac044d9`](https://github.com/dashpay/dash/commit/4cac044d9) Merge #8944: Remove bogus assert on number of oubound connections. (#1685)
- [`0f05e25c7`](https://github.com/dashpay/dash/commit/0f05e25c7) fix a bug in CommitFinalTransaction (#1540)
- [`82595b1b9`](https://github.com/dashpay/dash/commit/82595b1b9) fix number of blocks to wait after successful mixing tx (#1597)
- [`33e460f30`](https://github.com/dashpay/dash/commit/33e460f30) Fix losing keys on PrivateSend (#1616)
- [`ea793a71f`](https://github.com/dashpay/dash/commit/ea793a71f) Make sure mixing masternode follows bip69 before signing final mixing tx (#1510)
- [`8c15f5f87`](https://github.com/dashpay/dash/commit/8c15f5f87) speedup MakeCollateralAmounts by skiping denominated inputs early (#1631)
- [`8e9289e12`](https://github.com/dashpay/dash/commit/8e9289e12) Keep track of wallet UTXOs and use them for PS balances and rounds calculations (#1655)
- [`f77efcf24`](https://github.com/dashpay/dash/commit/f77efcf24) do not calculate stuff that are not going to be visible in simple PS UI anyway (#1656)
### InstantSend:
- [`68e1a8c79`](https://github.com/dashpay/dash/commit/68e1a8c79) Safety check in CInstantSend::SyncTransaction (#1412)
- [`4a9fbca08`](https://github.com/dashpay/dash/commit/4a9fbca08) Fix potential deadlock in CInstantSend::UpdateLockedTransaction (#1571)
- [`6496fc9da`](https://github.com/dashpay/dash/commit/6496fc9da) fix off-by-1 in CSuperblock::GetPaymentsLimit (#1598)
- [`48d63ab29`](https://github.com/dashpay/dash/commit/48d63ab29) Relay govobj and govvote to every compatible peer, not only to the one with the same version (#1662)
- [`6f57519c6`](https://github.com/dashpay/dash/commit/6f57519c6) allow up to 40 chars in proposal name (#1693)
- [`ceda3abe6`](https://github.com/dashpay/dash/commit/ceda3abe6) start_epoch, end_epoch and payment_amount should be numbers, not strings (#1707)
### Network/Sync:
- [`62963e911`](https://github.com/dashpay/dash/commit/62963e911) fix sync reset which is triggered erroneously during reindex (#1478)
- [`fc406f2d8`](https://github.com/dashpay/dash/commit/fc406f2d8) track asset sync time (#1479)
- [`9e9df2820`](https://github.com/dashpay/dash/commit/9e9df2820) do not use masternode connections in feeler logic (#1533)
- [`9694658cd`](https://github.com/dashpay/dash/commit/9694658cd) Make sure mixing messages are relayed/accepted properly (#1547)
- [`0fc13434b`](https://github.com/dashpay/dash/commit/0fc13434b) limit UpdatedBlockTip in IBD (#1570)
- [`510c0a06d`](https://github.com/dashpay/dash/commit/510c0a06d) Relay tx in sendrawtransaction according to its inv.type (#1584)
- [`c56ba56e7`](https://github.com/dashpay/dash/commit/c56ba56e7) net: Consistently use GetTimeMicros() for inactivity checks (#1588)
- [`4f5455000`](https://github.com/dashpay/dash/commit/4f5455000) Use GetAdjustedTime instead of GetTime when dealing with network-wide timestamps (#1590)
- [`d07ac4fbd`](https://github.com/dashpay/dash/commit/d07ac4fbd) fix: update DIP0001 related stuff even in IBD (#1652)
- [`d28619872`](https://github.com/dashpay/dash/commit/d28619872) fix: The idea behind fDIP0001LockedInAtTip was to indicate that it WAS locked in, not that it IS locked in (#1666)
### Wallet:
- [`27f3218de`](https://github.com/dashpay/dash/commit/27f3218de) HD wallet (#1405)
- [`b6804678f`](https://github.com/dashpay/dash/commit/b6804678f) Minor Warning Fixed (#1482)
- [`cd76f2a15`](https://github.com/dashpay/dash/commit/cd76f2a15) Disable HD wallet by default (#1629)
- [`8c1e5e838`](https://github.com/dashpay/dash/commit/8c1e5e838) remove send addresses from listreceivedbyaddress output (#1664)
- [`c3bc06bbf`](https://github.com/dashpay/dash/commit/c3bc06bbf) fix Examples section of the RPC output for listreceivedbyaccount, listreceivedbyaccount and sendfrom commands (#1665)
- [`ece884994`](https://github.com/dashpay/dash/commit/ece884994) RPC help formatting updates (#1670)
- [`e0d6c5b5a`](https://github.com/dashpay/dash/commit/e0d6c5b5a) fixed potential deadlock in CMasternodePing::SimpleCheck (#1534)
- [`8b5f47e68`](https://github.com/dashpay/dash/commit/8b5f47e68) Masternode classes: Remove repeated/un-needed code and data (#1572)
- [`23582aea4`](https://github.com/dashpay/dash/commit/23582aea4) add/use GetUTXO\[Coins/Confirmations\] helpers instead of GetInputAge\[IX\] (#1578)
- [`fe81d641d`](https://github.com/dashpay/dash/commit/fe81d641d) drop pCurrentBlockIndex and use cached block height instead (nCachedBlockHeight) (#1579)
- [`8012f2ca7`](https://github.com/dashpay/dash/commit/8012f2ca7) drop masternode index (#1580)
As well as Bitcoin Core Developers and everyone that submitted issues or helped translating on [Transifex](https://www.transifex.com/projects/p/dash/).