diff --git a/configure.ac b/configure.ac index c0508d62de7bb..90cf732610533 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 14) define(_CLIENT_VERSION_REVISION, 0) -define(_CLIENT_VERSION_BUILD, 3) +define(_CLIENT_VERSION_BUILD, 4) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2019) define(_COPYRIGHT_HOLDERS,[The %s developers]) diff --git a/doc/Doxyfile b/doc/Doxyfile index e44ff6938b532..0a4b10a183c68 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -41,7 +41,7 @@ PROJECT_NAME = "Dash Core" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 0.14.0.3 +PROJECT_NUMBER = 0.14.0.4 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/doc/man/dash-cli.1 b/doc/man/dash-cli.1 index c9baa59d6b2ea..e29a9fb78ad96 100644 --- a/doc/man/dash-cli.1 +++ b/doc/man/dash-cli.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH DASH-CLI "1" "June 2019" "dash-cli v0.14.0.2" "User Commands" +.TH DASH-CLI "1" "November 2019" "dash-cli v0.14.0.4" "User Commands" .SH NAME -dash-cli \- manual page for dash-cli v0.14.0.2 +dash-cli \- manual page for dash-cli v0.14.0.4 .SH DESCRIPTION -Dash Core RPC client version v0.14.0.2 +Dash Core RPC client version v0.14.0.4 .SS "Usage:" .TP dash\-cli [options] [params] diff --git a/doc/man/dash-qt.1 b/doc/man/dash-qt.1 index 3389033be5d00..f904eff9456f7 100644 --- a/doc/man/dash-qt.1 +++ b/doc/man/dash-qt.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH DASH-QT "1" "June 2019" "dash-qt v0.14.0.2" "User Commands" +.TH DASH-QT "1" "November 2019" "dash-qt v0.14.0.4" "User Commands" .SH NAME -dash-qt \- manual page for dash-qt v0.14.0.2 +dash-qt \- manual page for dash-qt v0.14.0.4 .SH DESCRIPTION -Dash Core version v0.14.0.2 (64\-bit) +Dash Core version v0.14.0.4 (64\-bit) Usage: .IP dash\-qt [command\-line options] diff --git a/doc/man/dash-tx.1 b/doc/man/dash-tx.1 index 5e1b99d7174e6..a9580e5f18703 100644 --- a/doc/man/dash-tx.1 +++ b/doc/man/dash-tx.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH DASH-TX "1" "June 2019" "dash-tx v0.14.0.2" "User Commands" +.TH DASH-TX "1" "November 2019" "dash-tx v0.14.0.4" "User Commands" .SH NAME -dash-tx \- manual page for dash-tx v0.14.0.2 +dash-tx \- manual page for dash-tx v0.14.0.4 .SH DESCRIPTION -Dash Core dash\-tx utility version v0.14.0.2 +Dash Core dash\-tx utility version v0.14.0.4 .SS "Usage:" .TP dash\-tx [options] [commands] diff --git a/doc/man/dashd.1 b/doc/man/dashd.1 index ee00253948a60..7ae12a8395050 100644 --- a/doc/man/dashd.1 +++ b/doc/man/dashd.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH DASHD "1" "June 2019" "dashd v0.14.0.2" "User Commands" +.TH DASHD "1" "November 2019" "dashd v0.14.0.4" "User Commands" .SH NAME -dashd \- manual page for dashd v0.14.0.2 +dashd \- manual page for dashd v0.14.0.4 .SH DESCRIPTION -Dash Core Daemon version v0.14.0.2 +Dash Core Daemon version v0.14.0.4 .SS "Usage:" .TP dashd [options] diff --git a/doc/release-notes.md b/doc/release-notes.md index ab7b4288da914..2eada47f52c98 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,4 +1,4 @@ -Dash Core version 0.14.0.3 +Dash Core version 0.14.0.4 ========================== Release is now available from: @@ -26,7 +26,7 @@ using version < 0.13 you will have to reindex (start with -reindex-chainstate or -reindex) to make sure your wallet has all the new data synced. Upgrading from version 0.13 should not require any additional actions. -Due to the changes in the "evodb" database format introduced in this release, the +When upgrading from a version prior to 0.14.0.3, the first startup of Dash Core will run a migration process which can take a few minutes to finish. After the migration, a downgrade to an older version is only possible with a reindex (or reindex-chainstate). @@ -43,71 +43,60 @@ a reindex or re-sync the whole chain. Notable changes =============== -Database space usage improvements --------------------------------- -Version 0.13.0.0 introduced a new database (evodb) which is found in the datadir of Dash Core. It turned -out that this database grows quite fast when a lot of changes inside the deterministic masternode list happen, -which is for example the case when a lot PoSe punishing/banning is happening. Such a situation happened -immediately after the activation LLMQ DKGs, causing the database to grow a lot. This release introduces -a new format in which information in "evodb" is stored, which causes it grow substantially slower. - -Version 0.14.0.0 also introduced a new database (llmq) which is also found in the datadir of Dash Core. -This database stores all LLMQ signatures for 7 days. After 7 days, a cleanup task removes old signatures. -The idea was that the "llmq" database would grow in the beginning and then stay at an approximately constant -size. The recent stress test on mainnet has however shown that the database grows too much and causes a risk -of out-of-space situations. This release will from now also remove signatures when the corresponding InstantSend -lock is fully confirmed on-chain (superseded by a ChainLock). This should remove >95% of all signatures from -the database. After the upgrade, no space saving will be observed however as this logic is only applied to new -signatures, which means that it will take 7 days until the whole "llmq" database gets to its minimum size. - -DKG and LLMQ signing failures fixed ------------------------------------ -Recent stress tests have shown that masternodes start to ban each other under high load and specific situations. -This release fixes this and thus makes it a highly recommended upgrade for masternodes. - -MacOS: macOS: disable AppNap during sync and mixing ---------------------------------------------------- -AppNap is disabled now when Dash Core is syncing/reindexing or mixing. - -Signed binaries for Windows ---------------------------- -This release is the first one to include signed binaries for Windows. - -New RPC command: quorum memberof --------------------------------------------- -This RPC allows you to verify which quorums a masternode is supposed to be a member of. It will also show -if the masternode succesfully participated in the DKG process. - -More information about number of InstantSend locks --------------------------------------------------- -The debug console will now show how many InstantSend locks Dash Core knows about. Please note that this number -does not necessarily equal the number of mempool transactions. - -The "getmempoolinfo" RPC also has a new field now which shows the same information. - -0.14.0.3 Change log +Fix respends of freshly received InstantSend transactions +--------------------------------------------------------- + +A bug in Dash Core caused respends to not work before a received InstantSend transaction was confirmed in at least +one block. This is fixed in this release, so that InstantSend locked mempool transactions can be +respent immediately in Dash Core (other wallets were not affected). + +Deprecation of SPORK_16_INSTANTSEND_AUTOLOCKS +--------------------------------------------- + +With the activation of SPORK_20_INSTANTSEND_LLMQ_BASED a few month ago, all transactions started to be locked via +InstantSend, which already partly deprecated SPORK_16_INSTANTSEND_AUTOLOCKS. This release removes the last use +of SPORK_16_INSTANTSEND_AUTOLOCKS, which caused InstantSend to stop working when the mempool got too large. + +Improve orphan transaction limit handling +----------------------------------------- + +Instead of limiting orphan transaction by number of transaction, we limit orphans by total size in bytes +now. This allows to have thousands of orphan transactions before hitting the limit. + +Discrepancies in orphan sets between nodes and handling of those was one of the major limiting factors in +the stress tests performed by an unknown entity on mainnet. + +Improve re-requesting for already known transactions +---------------------------------------------------- + +Previously, Dash would re-request old transactions even though they were already known locally. This +happened when the outputs were respent very shortly after confirmation of the transaction. This lead to +wrongly handling these transactions as orphans, filling up the orphan set and hitting limits very fast. +This release fixes this for nodes which have txindex enabled, which is the case for all masternodes. Normal +nodes (without txindex) can ignore the issue as they are not involved in active InstantSend locking. + +Another issue fixed in this release is the re-requesting of transactions after an InstantSend lock invalidated +a conflicting transaction. + +Multiple improvements to PrivateSend +------------------------------------ + +Multiple improvements to PrivateSend are introduced in this release, leading to faster mixing and more +reasonable selection of UTXOs when sending PrivateSend funds. + +Fix for CVE-2017-18350 +---------------------- + +Bitcoin silently implemented a hidden fix for [CVE-2017-18350](https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-November/017453.html). +in Bitcoin v0.15.1. This release of Dash Core includes a backport of this fix. + + +0.14.0.4 Change log =================== -See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.14.0.2...dashpay:v0.14.0.3). - -- [`f2443709b`](https://github.com/dashpay/dash/commit/f2443709b) Update release-notes.md for 0.14.0.3 (#3054) -- [`17ba23871`](https://github.com/dashpay/dash/commit/17ba23871) Re-verify invalid IS sigs when the active quorum set rotated (#3052) -- [`8c49d9b54`](https://github.com/dashpay/dash/commit/8c49d9b54) Remove recovered sigs from the LLMQ db when corresponding IS locks get confirmed (#3048) -- [`2e0cf8a30`](https://github.com/dashpay/dash/commit/2e0cf8a30) Add "instantsendlocks" to getmempoolinfo RPC (#3047) -- [`a8fb8252e`](https://github.com/dashpay/dash/commit/a8fb8252e) Use fEnablePrivateSend instead of fPrivateSendRunning -- [`a198a04e0`](https://github.com/dashpay/dash/commit/a198a04e0) Show number of InstantSend locks in Debug Console (#2919) -- [`013169d63`](https://github.com/dashpay/dash/commit/013169d63) Optimize on-disk deterministic masternode storage to reduce size of evodb (#3017) -- [`9ac7a998b`](https://github.com/dashpay/dash/commit/9ac7a998b) Add "isValidMember" and "memberIndex" to "quorum memberof" and allow to specify quorum scan count (#3009) -- [`99824a879`](https://github.com/dashpay/dash/commit/99824a879) Implement "quorum memberof" (#3004) -- [`7ea319fd2`](https://github.com/dashpay/dash/commit/7ea319fd2) Bail out properly on Evo DB consistency check failures in ConnectBlock/DisconnectBlock (#3044) -- [`b1ffedb2d`](https://github.com/dashpay/dash/commit/b1ffedb2d) Do not count 0-fee txes for fee estimation (#3037) -- [`974055a9b`](https://github.com/dashpay/dash/commit/974055a9b) Fix broken link in PrivateSend info dialog (#3031) -- [`781b16579`](https://github.com/dashpay/dash/commit/781b16579) Merge pull request #3028 from PastaPastaPasta/backport-12588 -- [`5af6ce91d`](https://github.com/dashpay/dash/commit/5af6ce91d) Add Dash Core Group codesign certificate (#3027) -- [`873ab896c`](https://github.com/dashpay/dash/commit/873ab896c) Fix osslsigncode compile issue in gitian-build (#3026) -- [`ea8569e97`](https://github.com/dashpay/dash/commit/ea8569e97) Backport #12783: macOS: disable AppNap during sync (and mixing) (#3024) -- [`4286dde49`](https://github.com/dashpay/dash/commit/4286dde49) Remove support for InstantSend locked gobject collaterals (#3019) -- [`788d42dbc`](https://github.com/dashpay/dash/commit/788d42dbc) Bump version to 0.14.0.3 and copy release notes (#3053) +See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.14.0.3...dashpay:v0.14.0.4). + +TODO Credits ======= @@ -117,7 +106,6 @@ Thanks to everyone who directly contributed to this release: - Alexander Block (codablock) - Nathan Marley (nmarley) - PastaPastaPasta -- strophy - UdjinM6 As well as everyone that submitted issues and reviewed pull requests. @@ -145,6 +133,7 @@ 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: +- [v0.14.0.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.3.md) released August/15/2019 - [v0.14.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.2.md) released July/4/2019 - [v0.14.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.1.md) released May/31/2019 - [v0.14.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.md) released May/22/2019 diff --git a/doc/release-notes/dash/release-notes-0.14.0.3.md b/doc/release-notes/dash/release-notes-0.14.0.3.md new file mode 100644 index 0000000000000..ab7b4288da914 --- /dev/null +++ b/doc/release-notes/dash/release-notes-0.14.0.3.md @@ -0,0 +1,169 @@ +Dash Core version 0.14.0.3 +========================== + +Release is now available from: + + + +This is a new minor version release, bringing various bugfixes and improvements. + +Please report bugs using the issue tracker at github: + + + + +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). If you upgrade after DIP0003 activation and you were +using version < 0.13 you will have to reindex (start with -reindex-chainstate +or -reindex) to make sure your wallet has all the new data synced. Upgrading from +version 0.13 should not require any additional actions. + +Due to the changes in the "evodb" database format introduced in this release, the +first startup of Dash Core will run a migration process which can take a few minutes +to finish. After the migration, a downgrade to an older version is only possible with +a reindex (or reindex-chainstate). + +Downgrade warning +----------------- + +### Downgrade to a version < 0.14.0.3 + +Downgrading to a version smaller than 0.14.0.3 is not supported anymore due to changes +in the "evodb" database format. If you need to use an older version, you have to perform +a reindex or re-sync the whole chain. + +Notable changes +=============== + +Database space usage improvements +-------------------------------- +Version 0.13.0.0 introduced a new database (evodb) which is found in the datadir of Dash Core. It turned +out that this database grows quite fast when a lot of changes inside the deterministic masternode list happen, +which is for example the case when a lot PoSe punishing/banning is happening. Such a situation happened +immediately after the activation LLMQ DKGs, causing the database to grow a lot. This release introduces +a new format in which information in "evodb" is stored, which causes it grow substantially slower. + +Version 0.14.0.0 also introduced a new database (llmq) which is also found in the datadir of Dash Core. +This database stores all LLMQ signatures for 7 days. After 7 days, a cleanup task removes old signatures. +The idea was that the "llmq" database would grow in the beginning and then stay at an approximately constant +size. The recent stress test on mainnet has however shown that the database grows too much and causes a risk +of out-of-space situations. This release will from now also remove signatures when the corresponding InstantSend +lock is fully confirmed on-chain (superseded by a ChainLock). This should remove >95% of all signatures from +the database. After the upgrade, no space saving will be observed however as this logic is only applied to new +signatures, which means that it will take 7 days until the whole "llmq" database gets to its minimum size. + +DKG and LLMQ signing failures fixed +----------------------------------- +Recent stress tests have shown that masternodes start to ban each other under high load and specific situations. +This release fixes this and thus makes it a highly recommended upgrade for masternodes. + +MacOS: macOS: disable AppNap during sync and mixing +--------------------------------------------------- +AppNap is disabled now when Dash Core is syncing/reindexing or mixing. + +Signed binaries for Windows +--------------------------- +This release is the first one to include signed binaries for Windows. + +New RPC command: quorum memberof +-------------------------------------------- +This RPC allows you to verify which quorums a masternode is supposed to be a member of. It will also show +if the masternode succesfully participated in the DKG process. + +More information about number of InstantSend locks +-------------------------------------------------- +The debug console will now show how many InstantSend locks Dash Core knows about. Please note that this number +does not necessarily equal the number of mempool transactions. + +The "getmempoolinfo" RPC also has a new field now which shows the same information. + +0.14.0.3 Change log +=================== + +See detailed [set of changes](https://github.com/dashpay/dash/compare/v0.14.0.2...dashpay:v0.14.0.3). + +- [`f2443709b`](https://github.com/dashpay/dash/commit/f2443709b) Update release-notes.md for 0.14.0.3 (#3054) +- [`17ba23871`](https://github.com/dashpay/dash/commit/17ba23871) Re-verify invalid IS sigs when the active quorum set rotated (#3052) +- [`8c49d9b54`](https://github.com/dashpay/dash/commit/8c49d9b54) Remove recovered sigs from the LLMQ db when corresponding IS locks get confirmed (#3048) +- [`2e0cf8a30`](https://github.com/dashpay/dash/commit/2e0cf8a30) Add "instantsendlocks" to getmempoolinfo RPC (#3047) +- [`a8fb8252e`](https://github.com/dashpay/dash/commit/a8fb8252e) Use fEnablePrivateSend instead of fPrivateSendRunning +- [`a198a04e0`](https://github.com/dashpay/dash/commit/a198a04e0) Show number of InstantSend locks in Debug Console (#2919) +- [`013169d63`](https://github.com/dashpay/dash/commit/013169d63) Optimize on-disk deterministic masternode storage to reduce size of evodb (#3017) +- [`9ac7a998b`](https://github.com/dashpay/dash/commit/9ac7a998b) Add "isValidMember" and "memberIndex" to "quorum memberof" and allow to specify quorum scan count (#3009) +- [`99824a879`](https://github.com/dashpay/dash/commit/99824a879) Implement "quorum memberof" (#3004) +- [`7ea319fd2`](https://github.com/dashpay/dash/commit/7ea319fd2) Bail out properly on Evo DB consistency check failures in ConnectBlock/DisconnectBlock (#3044) +- [`b1ffedb2d`](https://github.com/dashpay/dash/commit/b1ffedb2d) Do not count 0-fee txes for fee estimation (#3037) +- [`974055a9b`](https://github.com/dashpay/dash/commit/974055a9b) Fix broken link in PrivateSend info dialog (#3031) +- [`781b16579`](https://github.com/dashpay/dash/commit/781b16579) Merge pull request #3028 from PastaPastaPasta/backport-12588 +- [`5af6ce91d`](https://github.com/dashpay/dash/commit/5af6ce91d) Add Dash Core Group codesign certificate (#3027) +- [`873ab896c`](https://github.com/dashpay/dash/commit/873ab896c) Fix osslsigncode compile issue in gitian-build (#3026) +- [`ea8569e97`](https://github.com/dashpay/dash/commit/ea8569e97) Backport #12783: macOS: disable AppNap during sync (and mixing) (#3024) +- [`4286dde49`](https://github.com/dashpay/dash/commit/4286dde49) Remove support for InstantSend locked gobject collaterals (#3019) +- [`788d42dbc`](https://github.com/dashpay/dash/commit/788d42dbc) Bump version to 0.14.0.3 and copy release notes (#3053) + +Credits +======= + +Thanks to everyone who directly contributed to this release: + +- Alexander Block (codablock) +- Nathan Marley (nmarley) +- PastaPastaPasta +- strophy +- UdjinM6 + +As well as everyone that submitted issues and reviewed pull requests. + +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: + +- [v0.14.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.2.md) released July/4/2019 +- [v0.14.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.1.md) released May/31/2019 +- [v0.14.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.md) released May/22/2019 +- [v0.13.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.3.md) released Apr/04/2019 +- [v0.13.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.2.md) released Mar/15/2019 +- [v0.13.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.1.md) released Feb/9/2019 +- [v0.13.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.0.md) released Jan/14/2019 +- [v0.12.3.4](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.4.md) released Dec/14/2018 +- [v0.12.3.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.3.md) released Sep/19/2018 +- [v0.12.3.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.2.md) released Jul/09/2018 +- [v0.12.3.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.1.md) released Jul/03/2018 +- [v0.12.2.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.3.md) released Jan/12/2018 +- [v0.12.2.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.2.md) released Dec/17/2017 +- [v0.12.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.md) released Nov/08/2017 +- [v0.12.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.1.md) released Feb/06/2017 +- [v0.12.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.0.md) released Aug/15/2015 +- [v0.11.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.2.md) released Mar/04/2015 +- [v0.11.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.1.md) released Feb/10/2015 +- [v0.11.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.0.md) released Jan/15/2015 +- [v0.10.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.10.0.md) released Sep/25/2014 +- [v0.9.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.9.0.md) released Mar/13/2014 + diff --git a/src/clientversion.h b/src/clientversion.h index a03ca0eb32318..6176b27e19648 100644 --- a/src/clientversion.h +++ b/src/clientversion.h @@ -17,7 +17,7 @@ #define CLIENT_VERSION_MAJOR 0 #define CLIENT_VERSION_MINOR 14 #define CLIENT_VERSION_REVISION 0 -#define CLIENT_VERSION_BUILD 3 +#define CLIENT_VERSION_BUILD 4 //! Set to true for release, false for prerelease or test build #define CLIENT_VERSION_IS_RELEASE true