neobytes/doc/release-notes.md
UdjinM6 8506678d4b
Prepare v0.12.2.2 release notes (#1769)
* move 0.12.2 release notes

* prepare 0.12.2.2 release notes
2017-12-16 19:29:41 +03:00

15 KiB
Raw Blame History

Dash Core version 0.12.2.2

Release is now available from:

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

This is a new minor version release, bringing various bugfixes 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). Because of the per-UTXO fix (see below) there is a one-time database upgrade operation, so expect a slightly longer startup time on the first run.

Downgrade warning

Downgrade to a version < 0.12.2.2

Because release 0.12.2.2 includes the per-UTXO fix (see below) which changes the structure of the internal database, this release is not fully backwards compatible. You will have to reindex the database if you decide to use any previous version.

This does not affect wallet forward or backward compatibility.

Notable changes

Per-UTXO fix

This fixes a potential vulnerability, so called 'Corebleed', which was demonstrated this summer at the Вrеаkіng Віtсоіn Соnfеrеnсе іn Раrіs. The DoS can cause nodes to allocate excessive amounts of memory, which leads them to a halt. You can read more about the fix in the original Bitcoin Core pull request https://github.com/bitcoin/bitcoin/pull/10195

To fix this issue in Dash Core however, we had to backport a lot of other improvements from Bitcoin Core, see full list of backports in the detailed change log below.

Additional indexes fix

If you were using additional indexes like addressindex, spentindex or timestampindex it's possible that they are not accurate. Please consider reindexing the database by starting your node with -reindex command line option. This is a one-time operation, the issue should be fixed now.

InstantSend fix

InstantSend should work with multisig addresses now.

PrivateSend fix

Some internal data structures were not cleared properly, which could lead to a slightly higher memory consumption over a long period of time. This was a minor issue which was not affecting mixing speed or user privacy in any way.

Removal of support for local masternodes

Keeping a wallet with 1000 DASH unlocked for 24/7 is definitely not a good idea anymore. Because of this fact, it's also no longer reasonable to update and test this feature, so it's completely removed now. If for some reason you were still using it, please follow one of the guides and setup a remote masternode instead.

Dropping old (pre-12.2) peers

Connections from peers with protocol lower than 70208 are no longer accepted.

Other improvements and bug fixes

As a result of previous intensive refactoring and some additional fixes, it should be possible to compile Dash Core with --disable-wallet option now.

This release also improves sync process and significantly lowers the time after which getblocktemplate rpc becomes available on node start.

And as usual, various small bugs and typos were fixed and more refactoring was done too.

0.12.2.2 Change log

See detailed change log below.

Backports:

  • 996f5103a Backport #7056: Save last db read
  • 23fe35a18 Backport #7756: Add cursor to iterate over utxo set, use this in gettxoutsetinfo
  • 17f2ea5d7 Backport #7904: txdb: Fix assert crash in new UTXO set cursor
  • 2e54bd2e8 Backport #7927: Minor changes to dbwrapper to simplify support for other databases
  • abaf524f0 Backport #7815: Break circular dependency main ↔ txdb
  • 02a6cef94 Move index structures into spentindex.h
  • d92b454a2 Add SipHash-2-4 primitives to hash
  • 44526af95 Use SipHash-2-4 for CCoinsCache index
  • 60e6a602e Use C++11 thread-safe static initializers in coins.h/coins.cpp
  • 753cb1563 Backport #7874: Improve AlreadyHave
  • 952383e16 Backport #7933: Fix OOM when deserializing UTXO entries with invalid length
  • e3b7ed449 Backport #8273: Bump -dbcache default to 300MiB
  • 94e01eb66 Backport #8467: [Trivial] Do not shadow members in dbwrapper
  • 105fd1815 Use fixed preallocation instead of costly GetSerializeSize
  • 6fbe93aa7 Backport #9307: Remove undefined FetchCoins method declaration
  • 6974f1723 Backport #9346: Batch construct batches
  • 4b4d22293 Backport #9308: [test] Add CCoinsViewCache Access/Modify/Write tests
  • a589c94a9 Backport #9107: Safer modify new coins
  • 09b3e042f Backport #9310: Assert FRESH validity in CCoinsViewCache::BatchWrite
  • ceb64fcd4 Backport #8610: Share unused mempool memory with coincache
  • 817ecc03d Backport #9353: Add data() method to CDataStream (and use it)
  • 249db2776 Backport #9999: [LevelDB] Plug leveldb logs to bitcoin logs
  • cfefd34f4 Backport #10126: Compensate for memory peak at flush time
  • ff9b2967a Backport #10133: Clean up calculations of pcoinsTip memory usage
  • 567043d36 Make DisconnectBlock and ConnectBlock static in validation.cpp
  • 9a266e68d Backport #10297: Simplify DisconnectBlock arguments/return value
  • fc5ced317 Backport #10445: Add test for empty chain and reorg consistency for gettxoutsetinfo.
  • 6f1997182 Add COMPACTSIZE wrapper similar to VARINT for serialization
  • b06a6a2e7 Fix use of missing self.log in blockchain.py
  • 8ed672219 Backport #10250: Fix some empty vector references
  • afa96b7c1 Backport #10249: Switch CCoinsMap from boost to std unordered_map
  • c81394b97 Backport #10195: Switch chainstate db and cache to per-txout model
  • d4562b5e5 Fix CCoinsViewCache::GetPriority to use new per-utxo
  • 92bb65894 Fix address index to use new per-utxo DB
  • 9ad56fe18 Dash related fixes for per-utxo DB
  • 4f807422f Backport #10550: Don't return stale data from CCoinsViewCache::Cursor()
  • 151c552c7 Backport #10537: Few Minor per-utxo assert-semantics re-adds and tweak
  • 06aa02ff6 Backport #10559: Change semantics of HaveCoinInCache to match HaveCoin
  • 549839a50 Backport #10581: Simplify return values of GetCoin/HaveCoin(InCache)
  • 5b232161a Backport #10558: Address nits from per-utxo change
  • 1a9add78c Backport #10660: Allow to cancel the txdb upgrade via splashscreen keypress 'q'
  • 4102211a3 Backport #10526: Force on-the-fly compaction during pertxout upgrade
  • 8780c762e Backport #10985: Add undocumented -forcecompactdb to force LevelDB compactions
  • 4cd19913d Backport #10998: Fix upgrade cancel warnings
  • 371feda4c Backport #11529: Avoid slow transaction search with txindex enabled
  • cdb2b1944 build: quiet annoying warnings without adding new ones
  • fee05dab9 build: silence gcc7's implicit fallthrough warning

Masternodes:

  • 312663b4b Remove support for local masternodes (#1706)

PrivateSend:

  • 7e96af4e6 Refactor PrivateSend (#1735)
  • f4502099a make CheckDSTXes() private, execute it on both client and server (#1736)

InstantSend:

  • 4802a1fb7 Allow IS for all txes, not only for txes with p2pkh and data outputs (#1760)
  • f37a64208 InstantSend txes should never qualify to be a 0-fee txes (#1777)

DIP0001:

  • 3028af19f post-DIP0001 cleanup (#1763)
  • 51b2c7501 Fix WarningBitsConditionChecker (#1765)

Network/Sync:

  • 5d58dd90c Make sure to clear setAskFor in Dash submodules (#1730)
  • 328009749 fine-tune sync conditions in getblocktemplate (#1739)
  • 362becbcc Bump MIN_PEER_PROTO_VERSION to 70208 (#1772)
  • 930afd7df Fix mnp and mnv invs (#1775)
  • 63e306148 Improve sync (#1779)
  • a79c97248 Fix ProcessVerifyBroadcast (#1780)

Build:

  • c166ed39b Allow compilation with --disable-wallet (#1733)
  • 31bc9d4ee Show test progress for tests running in wine to avoid Travis timeout (#1740)
  • 32f21698e Adjust tests to avoid Travis timeouts (#1745)
  • 837c4fc5d Force rcc to use resource format version 1. (#1784)

GUI:

Docs:

  • bc8342558 Two small fixes in docs (#1746)
  • 9e7cc56cb Fix typo in release-notes.md (#1759)
  • 3f3705c47 [Trivial] Typo/doc updates and RPC help formatting (#1758)
  • e96da9f19 move 0.12.2 release notes
  • 6915ee45e Bump version in README.md to 0.12.2 (#1774)
  • 0291604ad Clarify usage of pointers and references in code (#1778)

Other:

  • ccbd5273e bump to 0.12.3.0 (#1726)
  • 865b61b50 Unify GetNextWorkRequired (#1737)
  • d1aeac1b2 Spelling mistake in validation.cpp (#1752)
  • 442325b07 add maxgovobjdatasize field to the output of getgovernanceinfo (#1757)
  • c5ec2f82a Drop IsNormalPaymentScript, use IsPayToPublicKeyHash (#1761)
  • f9f28e7c7 De-bump to 0.12.2.2 (#1768)
  • 54186a159 Make sure additional indexes are recalculated correctly in VerifyDB (#1773)
  • 86e6f0dd2 Fix CMasternodeMan::ProcessVerify* logs (#1782)

Credits

Thanks to everyone who directly contributed to this release:

  • Alexander Block
  • shade
  • sidhujag
  • thephez
  • turbanoff
  • Ilya Savinov
  • UdjinM6
  • Will Wray

As well as Bitcoin Core Developers and everyone that submitted issues, reviewed pull requests 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 release notes can be found here: