neobytes/doc/release-notes.md
2017-12-01 08:13:49 +03:00

33 KiB

Dash Core version 0.12.2

Release is now available from:

https://www.dash.org/downloads/#wallets

This is a new major version release, bringing new features and other improvements.

Please report bugs using the issue tracker at github:

https://github.com/dashpay/dash/issues

Upgrading and downgrading

How to Upgrade

If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/Dash-Qt (on Mac) or dashd/dash-qt (on Linux).

Downgrade warning

Downgrade to a version < 0.12.2

Because release 0.12.2 includes DIP0001 (2 MB block size hardfork) plus a transaction fee reduction and a fix for masternode rank calculation algo (which activation also depends on DIP0001) this release will not be backwards compatible after DIP0001 lock in/activation happens.

This does not affect wallet forward or backward compatibility.

Notable changes

DIP0001

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.

https://github.com/dashpay/dips/blob/master/dip-0001.md

Fee reduction

All transaction fees are reduced 10x (from 10K per Kb to 1K per Kb), including fees for InstantSend (from 0.001 DASH per input to 0.0001 per input)

InstantSend fix

The potential vulnerability found by Matt Robertson and Alexander Block was fixed in d7a8489f3 (#1620).

RPC changes

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/blob/v0.12.2.x/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.

There are few new RPC commands also:

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

Command-line options

New: assumevalid, blocksonly, reindex-chainstate`

Experimental: usehd, mnemonic, mnemonicpassphrase, hdseed

See Help -> Command-line options in Qt wallet or dashd --help for more info.

PrivateSend improvements

Algorithm for selecting inputs was slightly changed in 6067896ae (#1248). This should allow user to get some mixed funds much faster.

Lots of backports, refactoring and bug fixes

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.

A lot of refactoring and other fixes should make code more reliable and easier to review now.

Experimental HD wallet

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.

0.12.2 Change log

Detailed change log below.

Backports:

  • ff30aed68 Align with btc 0.12 (#1409)
  • 9901cf433 Fix for dash-qt issue with startup and multiple monitors. (#1461)
  • 39750439b Force to use C++11 mode for compilation (#1463)
  • e30faab6f Make strWalletFile const (#1459)
  • c4fe22900 Access WorkQueue::running only within the cs lock. (#1460)
  • 8572d54a9 trivial: fix bloom filter init to isEmpty = true (#1458)
  • b272ae56a Avoid ugly exception in log on unknown inv type (#1457)
  • e99dbe620 Don't return the address of a P2SH of a P2SH (#1455)
  • f24efd483 Generate auth cookie in hex instead of base64 (#1454)
  • 3efcb755e Do not shadow LOCK's criticalblock variable for LOCK inside LOCK (#1453)
  • b7822464f Remove unnecessary LOCK(cs_main) in getrawpmempool (#1452)
  • 72176e501 Remove duplicate bantablemodel.h include (#1446)
  • 634ef6c06 Fix for build on Ubuntu 14.04 with system libraries (#1467)
  • c0450f609 Improve EncodeBase58/DecodeBase58 performance (#1456)
  • 258ed119a auto_ptr → unique_ptr
  • be968206b Boost 1.61.0
  • 7f8775409 Boost 1.63.0
  • 11afc8f4b Minimal fix to slow prevector tests as stopgap measure
  • 11121747b build: fix qt5.7 build under macOS (#1469)
  • 5988e1e7f Increase minimum debug.log size to 10MB after shrink. (#1480)
  • a443d4e2d Backport Bitcoin PRs #6589, #7180 and remaining part of #7181: enable per-command byte counters in CNode (#1496)
  • f9730cb2e Increase test coverage for addrman and addrinfo (#1497)
  • a12491448 Eliminate unnecessary call to CheckBlock (#1498)
  • b0843c397 Backport Bincoin PR#7348: MOVE ONLY: move rpc* to rpc/ + same for Dash-specific rpc (#1502)
  • f65017cfe Backport Bitcoin PR#7349: Build against system UniValue when available (#1503)
  • ac6c3c900 Backport Bitcoin PR#7350: Banlist updates (#1505)
  • d787fe4ab Backport Bitcoin PR#7458: [Net] peers.dat, banlist.dat recreated when missing (#1506)
  • 6af9955fa Backport Bitcoin PR#7696: Fix de-serialization bug where AddrMan is corrupted after exception (#1507)
  • b39c518d5 Backport Bitcoin PR#7749: Enforce expected outbound services (#1508)
  • 9268a336d Backport Bitcoin PR#7917: Optimize reindex (#1515)
  • b47984f30 Remove non-determinism which is breaking net_tests #8069 (#1517)
  • 9a8a290b8 fix race that could fail to persist a ban (#1518)
  • 5a1961e5e Backport Bitcoin PR#7906: net: prerequisites for p2p encapsulation changes (#1521)
  • 7b5556a29 Backport Bitcoin PR#8084: Add recently accepted blocks and txn to AttemptToEvictConnection (#1522)
  • 9ce2b966c Backport Bitcoin PR#8113: Rework addnode behaviour (#1525)
  • aa32f1dc9 Remove bad chain alert partition check (#1529)
  • d934ffb2f Added feeler connections increasing good addrs in the tried table. (#1530)
  • 290fb3b57 Backport Bitcoin PR#7942: locking for Misbehave() and other cs_main locking fixes (#1535)
  • a9d771e49 Backport Bitcoin PR#8085: p2p: Begin encapsulation (#1537)
  • 82851b439 Backport Bitcoin PR#8049: Expose information on whether transaction relay is enabled in getnetwork (#1545)
  • 7707c0789 backport 9008: Remove assert(nMaxInbound > 0) (#1548)
  • b621cfb5f Backport Bitcoin PR#8708: net: have CConnman handle message sending (#1553)
  • cc4db34f4 net: only delete CConnman if it's been created (#1555)
  • a3c8cb20d Backport Bitcoin PR#8865: Decouple peer-processing-logic from block-connection-logic (#1556)
  • e7e106e22 Backport Bitcoin PR#8969: Decouple peer-processing-logic from block-connection-logic (#2) (#1558)
  • b4b343145 Backport Bitcoin PR#9075: Decouple peer-processing-logic from block-connection-logic (#3) (#1560)
  • 415085c73 Backport Bitcoin PR#9183: Final Preparation for main.cpp Split (#1561)
  • bcf5455bf Backport Bitcoin PR#8822: net: Consistent checksum handling (#1565)
  • df6d458b8 Backport Bitcoin PR#9260: Mrs Peacock in The Library with The Candlestick (killed main.{h,cpp}) (#1566)
  • 42c784dc7 Backport Bitcoin PR#9289: net: drop boost::thread_group (#1568)
  • b9c67258b Backport Bitcoin PR#9609: net: fix remaining net assertions (#1575) + Dashify
  • 2472999da Backport Bitcoin PR#9441: Net: Massive speedup. Net locks overhaul (#1586)
  • ccee103a0 Backport "assumed valid blocks" feature from Bitcoin 0.13 (#1582)
  • 105122181 Partially backport Bitcoin PR#9626: Clean up a few CConnman cs_vNodes/CNode things (#1591)
  • 76181f575 Do not add random inbound peers to addrman. (#1593)
  • 589d22f2c net: No longer send local address in addrMe (#1600)
  • b41d9eac2 Backport Bitcoin PR#7868: net: Split DNS resolving functionality out of net structures (#1601)
  • b82b9787d Backport Bitcoin PR#8128: Net: Turn net structures into dumb storage classes (#1604)
  • 690cb58f8 Backport Bitcoin Qt/Gui changes up to 0.14.x part 1 (#1614)
  • 9707ca5ce Backport Bitcoin Qt/Gui changes up to 0.14.x part 2 (#1615)
  • 91d99fcd3 Backport Bitcoin Qt/Gui changes up to 0.14.x part 3 (#1617)
  • 4cac044d9 Merge #8944: Remove bogus assert on number of oubound connections. (#1685)
  • d23adcc0f Merge #10231: [Qt] Reduce a significant cs_main lock freeze (#1704)

PrivateSend:

  • 6067896ae mix inputs with highest number of rounds first (#1248)
  • 559f8421b Few fixes for PrivateSend (#1408)
  • 7242e2922 Refactor PS (#1437)
  • 68e858f8d PrivateSend: dont waste keys from keypool on failure in CreateDenominated (#1473)
  • 2daea77a5 fix calculation of (unconfirmed) anonymizable balance (#1477)
  • 029ee6494 split CPrivateSend (#1492)
  • 739ef9a68 Expire confirmed DSTXes after ~1h since confirmation (#1499)
  • 7abac068b fix MakeCollateralAmounts (#1500)
  • 0f05e25c7 fix a bug in CommitFinalTransaction (#1540)
  • 82595b1b9 fix number of blocks to wait after successful mixing tx (#1597)
  • 33e460f30 Fix losing keys on PrivateSend (#1616)
  • ea793a71f Make sure mixing masternode follows bip69 before signing final mixing tx (#1510)
  • 8c15f5f87 speedup MakeCollateralAmounts by skiping denominated inputs early (#1631)
  • 8e9289e12 Keep track of wallet UTXOs and use them for PS balances and rounds calculations (#1655)
  • f77efcf24 do not calculate stuff that are not going to be visible in simple PS UI anyway (#1656)

InstantSend:

  • 68e1a8c79 Safety check in CInstantSend::SyncTransaction (#1412)
  • 4a9fbca08 Fix potential deadlock in CInstantSend::UpdateLockedTransaction (#1571)
  • f786ce6ab fix instantsendtoaddress param convertion (#1585)
  • ae909d0a0 Fix: Reject invalid instantsend transaction (#1583)
  • 84ecccefc InstandSend overhaul (#1592)
  • 5f4362cb8 fix SPORK_5_INSTANTSEND_MAX_VALUE validation in CWallet::CreateTransaction (#1619)
  • d7a8489f3 Fix masternode score/rank calculations (#1620)
  • b41f8d3dd fix instantsend-related RPC output (#1628)
  • 502748487 bump MIN_INSTANTSEND_PROTO_VERSION to 70208 (#1650)
  • 788ae63ac Fix edge case for IS (skip inputs that are too large) (#1695)
  • 470e5435c remove InstantSend votes for failed lock attemts after some timeout (#1705)
  • a9293ad03 update setAskFor on TXLOCKVOTE (#1713)
  • 859144809 fix bug introduced in #1695 (#1714)

Governance:

  • 4595db0ce Few changes for governance rpc: (#1351)
  • 411332f94 sentinel uses status of funding votes (#1440)
  • a109a611f Validate proposals on prepare and submit (#1488)
  • a439e9840 Replace watchdogs with ping (#1491)
  • 109c5fd1d Fixed issues with propagation of governance objects (#1489)
  • f7aa81586 Fix issues with mapSeenGovernanceObjects (#1511)
  • 8075370d1 change invalid version string constant (#1532)
  • 916af52c0 Fix vulnerability with mapMasternodeOrphanObjects (#1512)
  • 70eb83a5c New rpc call "masternodelist info" (#1513)
  • f47f0daf9 add 6 to strAllowedChars (#1542)
  • 6cb3fddcc fixed potential deadlock in CSuperblockManager::IsSuperblockTriggered (#1536)
  • 15958c594 fix potential deadlock (PR#1536 fix) (#1538)
  • 1c4e2946a fix potential deadlock in CGovernanceManager::ProcessVote (#1541)
  • 4942884c7 fix potential deadlock in CMasternodeMan::CheckMnbAndUpdateMasternodeList (#1543)
  • 4ed838cb5 Fix MasternodeRateCheck (#1490)
  • 6496fc9da fix off-by-1 in CSuperblock::GetPaymentsLimit (#1598)
  • 48d63ab29 Relay govobj and govvote to every compatible peer, not only to the one with the same version (#1662)
  • 6f57519c6 allow up to 40 chars in proposal name (#1693)
  • ceda3abe6 start_epoch, end_epoch and payment_amount should be numbers, not strings (#1707)

Network/Sync:

  • 62963e911 fix sync reset which is triggered erroneously during reindex (#1478)
  • fc406f2d8 track asset sync time (#1479)
  • 9e9df2820 do not use masternode connections in feeler logic (#1533)
  • 9694658cd Make sure mixing messages are relayed/accepted properly (#1547)
  • 87707c012 fix CDSNotificationInterface::UpdatedBlockTip signature (#1562)
  • 105713c10 Sync overhaul (#1564)
  • 0fc13434b limit UpdatedBlockTip in IBD (#1570)
  • 510c0a06d Relay tx in sendrawtransaction according to its inv.type (#1584)
  • c56ba56e7 net: Consistently use GetTimeMicros() for inactivity checks (#1588)
  • 4f5455000 Use GetAdjustedTime instead of GetTime when dealing with network-wide timestamps (#1590)
  • 4f0618ae8 Fix sync issues (#1599)
  • 169afafd5 Fix duplicate headers download in initial sync (#1589)
  • 91ae0b712 Use connman passed to ThreadSendAlert() instead of g_connman global. (#1610)
  • 8da26da71 Eliminate g_connman use in spork module. (#1613)
  • 4956ba7a7 Eliminate g_connman use in instantx module. (#1626)
  • 10eddb52d Move some (spamy) CMasternodeSync log messages to new mnsync log category (#1630)
  • 753b1e486 Eliminate remaining uses of g_connman in Dash-specific code. (#1635)
  • 8949f4345 Wait for full sync in functional tests that use getblocktemplate. (#1642)
  • 5f0da8aa7 fix sync (#1643)
  • 7a8910443 Fix unlocked access to vNodes.size() (#1654)
  • 278cf144b Remove cs_main from ThreadMnbRequestConnections (#1658)
  • 52cd4d40d Fix bug: nCachedBlockHeight was not updated on start (#1673)
  • 1df889e23 Add more logging for MN votes and MNs missing votes (#1683)
  • 28c8d1729 Fix sync reset on lack of activity (#1686)
  • dfb8dbbf6 Fix mnp relay bug (#1700)

GUI:

  • 5758ae1bf Full path in "failed to load cache" warnings (#1411)
  • 18c83f58e Qt: bug fixes and enhancement to traffic graph widget (#1429)
  • 72fbfe93d Icon Cutoff Fix (#1485)
  • 4df8a20f9 Fix windows installer script, should handle dash: uri correctly now (#1550)
  • 8b7dffbb6 Update startup shortcuts (#1551)
  • 6ff7b7aa5 fix TrafficGraphData bandwidth calculation (#1618)
  • 026ad8421 Fix empty tooltip during sync under specific conditions (#1637)
  • 08e503da2 [GUI] Change look of modaloverlay (#1653)
  • 296cfd2ef Fix compilation with qt < 5.2 (#1672)
  • 11afd7cfd Translations201710 - en, de, fi, fr, ru, vi (#1659)
  • 14d11e4a8 Translations 201710 part2 (#1676)
  • 2144dae91 Add hires version of light theme for Hi-DPI screens (#1712)

DIP0001:

  • cd262bf64 DIP0001 implementation (#1594)
  • 6a6b31b74 Dip0001-related adjustments (inc. constants) (#1621)
  • e22453c90 fix fDIP0001* flags initialization (#1625)
  • 25fa44d5a fix DIP0001 implementation (#1639)
  • d07ac4fbd fix: update DIP0001 related stuff even in IBD (#1652)
  • d28619872 fix: The idea behind fDIP0001LockedInAtTip was to indicate that it WAS locked in, not that it IS locked in (#1666)

Wallet:

RPC:

  • a0851494d add masternodelist pubkey to rpc (#1549)
  • 825b3ccc9 more "vin" -> "outpoint" in masternode rpc output (#1633)
  • 0c1679e58 fix masternode current rpc (#1640)
  • 8c1e5e838 remove send addresses from listreceivedbyaddress output (#1664)
  • c3bc06bbf fix Examples section of the RPC output for listreceivedbyaccount, listreceivedbyaccount and sendfrom commands (#1665)
  • ece884994 RPC help formatting updates (#1670)
  • 32ad53e77 Revert "fix masternode current rpc (#1640)" (#1681)
  • a5f99ef2f partially revert "[Trivial] RPC help formatting updates #1670" (#1711)

Docs:

  • 82a464313 Doc: fix broken formatting in markdown #headers (#1462)
  • ee4daed83 Added clarifications in INSTALL readme for newcomers (#1481)
  • 5d2795029 Documentation: Add spork message / details to protocol-documentation.md (#1493)
  • 5617aef07 Documentation: Update undocumented messages in protocol-documentation.md (#1596)
  • 72ef788c5 Update instantsend.md according to PR#1628 changes (#1663)
  • 304b886d0 Update build-osx.md formatting (#1690)
  • 578d55979 12.2 release notes (#1675)

Other (noticeable) refactoring and fixes:

  • 98990b683 Refactor: CDarkSendSigner (#1410)
  • 397ea95db Implement BIP69 outside of CTxIn/CTxOut (#1514)
  • 27b6f3633 fix deadlock (#1531)
  • e0d6c5b5a fixed potential deadlock in CMasternodePing::SimpleCheck (#1534)
  • 8b5f47e68 Masternode classes: Remove repeated/un-needed code and data (#1572)
  • 23582aea4 add/use GetUTXO[Coins/Confirmations] helpers instead of GetInputAge[IX] (#1578)
  • fe81d641d drop pCurrentBlockIndex and use cached block height instead (nCachedBlockHeight) (#1579)
  • 8012f2ca7 drop masternode index (#1580)
  • b5f7be649 slightly refactor CDSNotificationInterface (#1581)
  • 9028a22b8 safe version of GetMasternodeByRank (#1595)
  • 05da4557d Refactor masternode management (#1611)
  • adc7c6cb1 Remove some recursive locks (#1624)

Other (technical) commits:

  • 1a528d945 bump to 0.12.2.0 (#1407)
  • b815a7b6a Merge remote-tracking branch 'remotes/origin/master' into v0.12.2.x
  • 7a5943c3a Merge pull request #1431 from dashpay/v0.12.2.x-merge_upstream
  • 8bbcf6200 Fixed pow (test and algo) (#1415)
  • f3b92a95d c++11: don't throw from the reverselock destructor (#1421)
  • b40f8f333 Rename bitcoinconsensus library to dashconsensus. (#1432)
  • 28a1d0ecc Fix the same header included twice. (#1474)
  • adf97e12a fix travis ci mac build (#1483)
  • a28fa724c fix BIP34 starting blocks for mainnet/testnet (#1476)
  • bea548c61 adjust/fix some log and error messages (#1484)
  • 715504357 Dashify bitcoin unix executables (#1486)
  • 1d67d5212 Don't try to create empty datadir before the real path is known (#1494)
  • 549b659e8 Force self-recheck on CActiveMasternode::ManageStateRemote() (#1441)
  • 96f0d6ec2 various trivial cleanup fixes (#1501)
  • f9dd40888 include atomic (#1523)
  • eea78d45e Revert "fixed regtest+ds issues" (#1524)
  • 1b1d52ac3 workaround for travis (#1526)
  • c608bbec1 Pass reference when calling HasPayeeWithVotes (#1569)
  • b22cda4df typo: "Writting" -> "Writing" (#1605)
  • ace00175c build: silence gcc7's implicit fallthrough warning (#1622)
  • 02e882c3d bump MIN_MASTERNODE_PAYMENT_PROTO_VERSION_2 and PROTOCOL_VERSION to 70208 (#1636)
  • d3829e55b fix BIP68 granularity and mask (#1641)
  • 72b221f74 Revert "fix BIP68 granularity and mask (#1641)" (#1647)
  • 381ffdc4b Fork testnet to test 12.2 migration (#1660)
  • 33dbafbba fork testnet again to re-test dip0001 because of 2 bugs found in 1st attempt (#1667)
  • 0b6955a7b update nMinimumChainWork and defaultAssumeValid for testnet (#1668)
  • 4ecbedbe7 fix setnetworkactive (typo) (#1682)
  • 46342b2e8 update nCollateralMinConfBlockHash for local (hot) masternode on mn start (#1689)
  • f5286b179 Fix/optimize images (#1688)
  • 673e161d5 fix trafficgraphdatatests for qt4 (#1699)

Credits

Thanks to everyone who directly contributed to this release:

  • Alex Werner
  • Alexander Block
  • Allan Doensen
  • Bob Feldbauer
  • chaeplin
  • crowning-
  • diego-ab
  • Gavin Westwood
  • gladcow
  • Holger Schinzel
  • Ilya Savinov
  • Kamuela Franco
  • krychlicki
  • Nathan Marley
  • Oleg Girko
  • QuantumExplorer
  • sorin-postelnicu
  • Spencer Lievens
  • taw00
  • TheLazieR Yip
  • thephez
  • Tim Flynn
  • UdjinM6
  • Will Wray

As well as Bitcoin Core Developers and everyone that submitted issues or helped translating on Transifex.

Older releases

Dash was previously known as Darkcoin.

Darkcoin tree 0.8.x was a fork of Litecoin tree 0.8, original name was XCoin which was first released on Jan/18/2014.

Darkcoin tree 0.9.x was the open source implementation of masternodes based on the 0.8.x tree and was first released on Mar/13/2014.

Darkcoin tree 0.10.x used to be the closed source implementation of Darksend which was released open source on Sep/25/2014.

Dash Core tree 0.11.x was a fork of Bitcoin Core tree 0.9, Darkcoin was rebranded to Dash.

Dash Core tree 0.12.0.x was a fork of Bitcoin Core tree 0.10.

Dash Core tree 0.12.1.x was a fork of Bitcoin Core tree 0.12.

These release are considered obsolete. Old changelogs can be found here: