Skip to content

Commit 68b6677

Browse files
Merge pull request #5296 from PastaPastaPasta/v19.0.0-rc.10-branch
chore: backport and version bump for rc.10
2 parents af25e48 + ebe5ef8 commit 68b6677

16 files changed

+312
-111
lines changed

configure.ac

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
22
define(_CLIENT_VERSION_MAJOR, 19)
33
define(_CLIENT_VERSION_MINOR, 0)
44
define(_CLIENT_VERSION_BUILD, 0)
5-
define(_CLIENT_VERSION_RC, 9)
5+
define(_CLIENT_VERSION_RC, 10)
66
define(_CLIENT_VERSION_IS_RELEASE, false)
77
define(_COPYRIGHT_YEAR, 2023)
88
define(_COPYRIGHT_HOLDERS,[The %s developers])

doc/release-notes.md

+24-40
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
1-
Dash Core version v18.2.1
1+
Dash Core version v18.2.2
22
=========================
33

44
Release is now available from:
55

66
<https://www.dash.org/downloads/#wallets>
77

8-
This is a new hotfix version release, bringing various bugfixes.
8+
This is a new hotfix version release.
99

10-
Please note that v18.2.0 was revoked due to a bug; this version fixes that bug.
11-
12-
This release is optional for all nodes; however, v18.2.1 is required to be
13-
able to use both mainnet and testnet. Currently, v18.2.0 is not working on mainnet,
14-
and v18.1.1 is not working on testnet; v18.2.1 will work on both networks.
10+
This release is optional for all nodes; however, v18.2.2 or higher is required
11+
to be able to use testnet right until v19 hard fork activation. Earlier
12+
versions will not be able to sync past block 847000 on testnet.
1513

1614
Please report bugs using the issue tracker at GitHub:
1715

@@ -41,45 +39,29 @@ downgrade to an older version is only possible with a reindex
4139
Downgrade warning
4240
-----------------
4341

44-
### Downgrade to a version < v18.2.1
42+
### Downgrade to a version < v18.2.2
4543

46-
Downgrading to a version older than v18.2.1 is supported.
44+
Downgrading to a version older than v18.2.2 is supported.
4745

4846
### Downgrade to a version < v18.0.1
4947

5048
Downgrading to a version older than v18.0.1 is not supported due to changes in
5149
the indexes database folder. If you need to use an older version, you must
5250
either reindex or re-sync the whole chain.
5351

54-
### Downgrade of masternodes to < 18.2.1
55-
56-
It is highly recommended not to downgrade masternodes below 18.2.1, as 18.2.1 (and 18.1.1)
57-
fix important bugs which may result in your masternode being PoSe banned.
58-
59-
### Downgrade of masternodes to < v18.0.1
60-
61-
Starting with the 0.16 release, masternodes verify the protocol version of other
62-
masternodes. This results in PoSe punishment/banning for outdated masternodes,
63-
so downgrading even prior to the activation of the introduced hard-fork changes
64-
is not recommended.
65-
66-
Versioning
67-
----------
68-
69-
Dash Core imperfectly follows semantic versioning. Breaking changes should be
70-
expected in a major release. The number and severity of breaking changes in minor
71-
releases are minimized, however we do not guarantee there are no breaking changes.
72-
Bitcoin backports often introduce breaking changes, and are a likely source of
73-
breaking changes in minor releases. Patch releases should never contain breaking changes.
74-
7552
Notable changes
7653
===============
77-
See #5145 and #5142; these 2 PR fix important bugs in previous versions. Specifically,
78-
#5145 fixes an issue where qfcommit messages can be replayed from the past, then are
79-
validated and propagated to other nodes. This patch prevents old qfcommits
80-
from being relayed. #5142 is a fix which enables this version to function both on testnet
81-
and mainnet.
8254

55+
Testnet Breaking Changes
56+
------------------------
57+
58+
A new testnet only LLMQ has been added. This LLMQ is of the type LLMQ_25_67; this LLMQ is only active on testnet.
59+
This LLMQ will not remove the LLMQ_100_67 from testnet; however that quorum (likely) will not form and will perform no role.
60+
See the [diff](https://github.com/dashpay/dash/pull/5225/files#diff-e70a38a3e8c2a63ca0494627301a5c7042141ad301193f78338d97cb1b300ff9R451-R469) for specific parameters of the LLMQ.
61+
62+
This LLMQ will become active at the height of 847000. **This will be a breaking change and a hard fork for testnet**
63+
This LLMQ is not activated with the v19 hardfork; as such testnet will experience two hardforks. One at height 847000,
64+
and the other to be determined by the BIP9 hard fork process.
8365

8466
Remote Procedure Call (RPC) Changes
8567
-----------------------------------
@@ -109,20 +91,21 @@ Backports from Bitcoin Core
10991
---------------------------
11092
None
11193

112-
v18.2.1 Change log
94+
Other changes
95+
-------------
96+
#5247 is backported to improve debugging experience.
97+
98+
v18.2.2 Change log
11399
==================
114100

115-
See detailed [set of changes](https://github.com/dashpay/dash/compare/v18.2.0...dashpay:v18.2.1).
101+
See detailed [set of changes](https://github.com/dashpay/dash/compare/v18.2.1...dashpay:v18.2.2).
116102

117103
Credits
118104
=======
119105

120106
Thanks to everyone who directly contributed to this release:
121107

122-
- Kittywhiskers Van Gogh
123-
- Konstantin Akimov
124108
- Odysseas Gabrielides
125-
- PastaPastaPasta
126109
- UdjinM6
127110

128111
As well as everyone that submitted issues, reviewed pull requests, helped debug the release candidates, and write DIPs that were implemented in this release.
@@ -150,6 +133,7 @@ Dash Core tree 0.12.1.x was a fork of Bitcoin Core tree 0.12.
150133

151134
These release are considered obsolete. Old release notes can be found here:
152135

136+
- [v18.2.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.2.md) released Jan/17/2023
153137
- [v18.2.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.0.md) released Jan/01/2023
154138
- [v18.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.1.1.md) released January/08/2023
155139
- [v18.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.1.0.md) released October/09/2022
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
Dash Core version v18.2.1
2+
=========================
3+
4+
Release is now available from:
5+
6+
<https://www.dash.org/downloads/#wallets>
7+
8+
This is a new hotfix version release, bringing various bugfixes.
9+
10+
Please note that v18.2.0 was revoked due to a bug; this version fixes that bug.
11+
12+
This release is optional for all nodes; however, v18.2.1 is required to be
13+
able to use both mainnet and testnet. Currently, v18.2.0 is not working on mainnet,
14+
and v18.1.1 is not working on testnet; v18.2.1 will work on both networks.
15+
16+
Please report bugs using the issue tracker at GitHub:
17+
18+
<https://github.com/dashpay/dash/issues>
19+
20+
21+
Upgrading and downgrading
22+
=========================
23+
24+
How to Upgrade
25+
--------------
26+
27+
If you are running an older version, shut it down. Wait until it has completely
28+
shut down (which might take a few minutes for older versions), then run the
29+
installer (on Windows) or just copy over /Applications/Dash-Qt (on Mac) or
30+
dashd/dash-qt (on Linux). If you upgrade after DIP0003 activation and you were
31+
using version < 0.13 you will have to reindex (start with -reindex-chainstate
32+
or -reindex) to make sure your wallet has all the new data synced. Upgrading
33+
from version 0.13 should not require any additional actions.
34+
35+
When upgrading from a version prior to 18.0.1, the
36+
first startup of Dash Core will run a migration process which can take anywhere
37+
from a few minutes to thirty minutes to finish. After the migration, a
38+
downgrade to an older version is only possible with a reindex
39+
(or reindex-chainstate).
40+
41+
Downgrade warning
42+
-----------------
43+
44+
### Downgrade to a version < v18.2.1
45+
46+
Downgrading to a version older than v18.2.1 is supported.
47+
48+
### Downgrade to a version < v18.0.1
49+
50+
Downgrading to a version older than v18.0.1 is not supported due to changes in
51+
the indexes database folder. If you need to use an older version, you must
52+
either reindex or re-sync the whole chain.
53+
54+
### Downgrade of masternodes to < 18.2.1
55+
56+
It is highly recommended not to downgrade masternodes below 18.2.1, as 18.2.1 (and 18.1.1)
57+
fix important bugs which may result in your masternode being PoSe banned.
58+
59+
### Downgrade of masternodes to < v18.0.1
60+
61+
Starting with the 0.16 release, masternodes verify the protocol version of other
62+
masternodes. This results in PoSe punishment/banning for outdated masternodes,
63+
so downgrading even prior to the activation of the introduced hard-fork changes
64+
is not recommended.
65+
66+
Versioning
67+
----------
68+
69+
Dash Core imperfectly follows semantic versioning. Breaking changes should be
70+
expected in a major release. The number and severity of breaking changes in minor
71+
releases are minimized, however we do not guarantee there are no breaking changes.
72+
Bitcoin backports often introduce breaking changes, and are a likely source of
73+
breaking changes in minor releases. Patch releases should never contain breaking changes.
74+
75+
Notable changes
76+
===============
77+
See #5145 and #5142; these 2 PR fix important bugs in previous versions. Specifically,
78+
#5145 fixes an issue where qfcommit messages can be replayed from the past, then are
79+
validated and propagated to other nodes. This patch prevents old qfcommits
80+
from being relayed. #5142 is a fix which enables this version to function both on testnet
81+
and mainnet.
82+
83+
84+
Remote Procedure Call (RPC) Changes
85+
-----------------------------------
86+
87+
### The new RPCs are:
88+
None
89+
90+
### The removed RPCs are:
91+
None
92+
93+
### Changes in existing RPCs introduced through bitcoin backports:
94+
None
95+
96+
### Dash-specific changes in existing RPCs:
97+
None
98+
99+
Please check `help <command>` for more detailed information on specific RPCs.
100+
101+
Command-line options
102+
--------------------
103+
None
104+
105+
Please check `Help -> Command-line options` in Qt wallet or `dashd --help` for
106+
more information.
107+
108+
Backports from Bitcoin Core
109+
---------------------------
110+
None
111+
112+
v18.2.1 Change log
113+
==================
114+
115+
See detailed [set of changes](https://github.com/dashpay/dash/compare/v18.2.0...dashpay:v18.2.1).
116+
117+
Credits
118+
=======
119+
120+
Thanks to everyone who directly contributed to this release:
121+
122+
- Kittywhiskers Van Gogh
123+
- Konstantin Akimov
124+
- Odysseas Gabrielides
125+
- PastaPastaPasta
126+
- UdjinM6
127+
128+
As well as everyone that submitted issues, reviewed pull requests, helped debug the release candidates, and write DIPs that were implemented in this release.
129+
130+
Older releases
131+
==============
132+
133+
Dash was previously known as Darkcoin.
134+
135+
Darkcoin tree 0.8.x was a fork of Litecoin tree 0.8, original name was XCoin
136+
which was first released on Jan/18/2014.
137+
138+
Darkcoin tree 0.9.x was the open source implementation of masternodes based on
139+
the 0.8.x tree and was first released on Mar/13/2014.
140+
141+
Darkcoin tree 0.10.x used to be the closed source implementation of Darksend
142+
which was released open source on Sep/25/2014.
143+
144+
Dash Core tree 0.11.x was a fork of Bitcoin Core tree 0.9,
145+
Darkcoin was rebranded to Dash.
146+
147+
Dash Core tree 0.12.0.x was a fork of Bitcoin Core tree 0.10.
148+
149+
Dash Core tree 0.12.1.x was a fork of Bitcoin Core tree 0.12.
150+
151+
These release are considered obsolete. Old release notes can be found here:
152+
153+
- [v18.2.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.0.md) released Jan/01/2023
154+
- [v18.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.1.1.md) released January/08/2023
155+
- [v18.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.1.0.md) released October/09/2022
156+
- [v18.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.0.2.md) released October/09/2022
157+
- [v18.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.0.1.md) released August/17/2022
158+
- [v0.17.0.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.17.0.3.md) released June/07/2021
159+
- [v0.17.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.17.0.2.md) released May/19/2021
160+
- [v0.16.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16.1.1.md) released November/17/2020
161+
- [v0.16.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16.1.0.md) released November/14/2020
162+
- [v0.16.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16.0.1.md) released September/30/2020
163+
- [v0.15.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.15.0.0.md) released Febrary/18/2020
164+
- [v0.14.0.5](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.5.md) released December/08/2019
165+
- [v0.14.0.4](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.4.md) released November/22/2019
166+
- [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
167+
- [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
168+
- [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
169+
- [v0.14.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.md) released May/22/2019
170+
- [v0.13.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.3.md) released Apr/04/2019
171+
- [v0.13.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.2.md) released Mar/15/2019
172+
- [v0.13.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.1.md) released Feb/9/2019
173+
- [v0.13.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.0.md) released Jan/14/2019
174+
- [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
175+
- [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
176+
- [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
177+
- [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
178+
- [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
179+
- [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
180+
- [v0.12.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.md) released Nov/08/2017
181+
- [v0.12.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.1.md) released Feb/06/2017
182+
- [v0.12.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.0.md) released Aug/15/2015
183+
- [v0.11.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.2.md) released Mar/04/2015
184+
- [v0.11.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.1.md) released Feb/10/2015
185+
- [v0.11.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.0.md) released Jan/15/2015
186+
- [v0.10.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.10.0.md) released Sep/25/2014
187+
- [v0.9.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.9.0.md) released Mar/13/2014

src/chainparams.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -238,8 +238,8 @@ class CMainParams : public CChainParams {
238238

239239
// Deployment of Deployment of Basic BLS, AssetLocks, EHF
240240
consensus.vDeployments[Consensus::DEPLOYMENT_V19].bit = 8;
241-
consensus.vDeployments[Consensus::DEPLOYMENT_V19].nStartTime = 1680220800; // Fri, Mar 31, 2023 0:00:00
242-
consensus.vDeployments[Consensus::DEPLOYMENT_V19].nTimeout = 1711843200; // Sun, Mar 31, 2024 00:00:00
241+
consensus.vDeployments[Consensus::DEPLOYMENT_V19].nStartTime = 1682380800; // Tuesday, April 25, 2023 0:00:00
242+
consensus.vDeployments[Consensus::DEPLOYMENT_V19].nTimeout = 1714003200; // Thursday, April 25, 2024 0:00:00
243243
consensus.vDeployments[Consensus::DEPLOYMENT_V19].nWindowSize = 4032;
244244
consensus.vDeployments[Consensus::DEPLOYMENT_V19].nThresholdStart = 3226; // 80% of 4032
245245
consensus.vDeployments[Consensus::DEPLOYMENT_V19].nThresholdMin = 2420; // 60% of 4032

src/evo/deterministicmns.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,14 @@ std::vector<CDeterministicMNCPtr> CDeterministicMNList::GetProjectedMNPayees(int
246246
result.emplace_back(dmn);
247247
}
248248
});
249+
250+
if (hpmn_to_be_skipped != nullptr) {
251+
// if hpmn is in the middle of payments, add entries for already paid ones to the end of the list
252+
for ([[maybe_unused]] auto _ : irange::range(hpmn_to_be_skipped->pdmnState->nConsecutivePayments)) {
253+
result.emplace_back(hpmn_to_be_skipped);
254+
}
255+
}
256+
249257
std::sort(result.begin() + remaining_hpmn_payments, result.end(), [&](const CDeterministicMNCPtr& a, const CDeterministicMNCPtr& b) {
250258
return CompareByLastPaid(a.get(), b.get());
251259
});

src/evo/deterministicmns.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
#include <immer/map.hpp>
2121

22+
#include <limits>
2223
#include <numeric>
2324
#include <unordered_map>
2425
#include <utility>
@@ -333,10 +334,10 @@ class CDeterministicMNList
333334
/**
334335
* Calculates the projected MN payees for the next *count* blocks. The result is not guaranteed to be correct
335336
* as PoSe banning might occur later
336-
* @param count
337+
* @param nCount the number of payees to return. "nCount = max()"" means "all", use it to avoid calling GetValidWeightedMNsCount twice.
337338
* @return
338339
*/
339-
[[nodiscard]] std::vector<CDeterministicMNCPtr> GetProjectedMNPayees(int nCount) const;
340+
[[nodiscard]] std::vector<CDeterministicMNCPtr> GetProjectedMNPayees(int nCount = std::numeric_limits<int>::max()) const;
340341

341342
/**
342343
* Calculate a quorum based on the modifier. The resulting list is deterministically sorted by score

src/governance/object.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -711,13 +711,13 @@ void CGovernanceObject::UpdateSentinelVariables()
711711
{
712712
// CALCULATE MINIMUM SUPPORT LEVELS REQUIRED
713713

714-
int nMnCount = (int)deterministicMNManager->GetListAtChainTip().GetValidMNsCount();
715-
if (nMnCount == 0) return;
714+
int nWeightedMnCount = (int)deterministicMNManager->GetListAtChainTip().GetValidWeightedMNsCount();
715+
if (nWeightedMnCount == 0) return;
716716

717717
// CALCULATE THE MINIMUM VOTE COUNT REQUIRED FOR FULL SIGNAL
718718

719-
int nAbsVoteReq = std::max(Params().GetConsensus().nGovernanceMinQuorum, nMnCount / 10);
720-
int nAbsDeleteReq = std::max(Params().GetConsensus().nGovernanceMinQuorum, (2 * nMnCount) / 3);
719+
int nAbsVoteReq = std::max(Params().GetConsensus().nGovernanceMinQuorum, nWeightedMnCount / 10);
720+
int nAbsDeleteReq = std::max(Params().GetConsensus().nGovernanceMinQuorum, (2 * nWeightedMnCount) / 3);
721721

722722
// SET SENTINEL FLAGS TO FALSE
723723

0 commit comments

Comments
 (0)