Skip to content

Commit ab5d7c1

Browse files
committed
Release 0.17.0.3 "Kenji"
Reforked from parent codebase 0.17.0.3 Final implementation of deterministic masternodes with llmq and PoSe.
1 parent 06b707d commit ab5d7c1

File tree

4 files changed

+28
-172
lines changed

4 files changed

+28
-172
lines changed

src/chainparams.cpp

Lines changed: 24 additions & 168 deletions
Original file line numberDiff line numberDiff line change
@@ -291,146 +291,6 @@ static Consensus::LLMQParams llmq100_67 = {
291291
.recoveryMembers = 50,
292292
};
293293

294-
/* Dash v0.17:
295-
// this one is for testing only
296-
static Consensus::LLMQParams llmq_test = {
297-
.type = Consensus::LLMQ_TEST,
298-
.name = "llmq_test",
299-
.size = 3,
300-
.minSize = 2,
301-
.threshold = 2,
302-
303-
.dkgInterval = 24, // one DKG per hour
304-
.dkgPhaseBlocks = 2,
305-
.dkgMiningWindowStart = 10, // dkgPhaseBlocks * 5 = after finalization
306-
.dkgMiningWindowEnd = 18,
307-
.dkgBadVotesThreshold = 2,
308-
309-
.signingActiveQuorumCount = 2, // just a few ones to allow easier testing
310-
311-
.keepOldConnections = 3,
312-
.recoveryMembers = 3,
313-
};
314-
315-
// this one is for testing only
316-
static Consensus::LLMQParams llmq_test_v17 = {
317-
.type = Consensus::LLMQ_TEST_V17,
318-
.name = "llmq_test_v17",
319-
.size = 3,
320-
.minSize = 2,
321-
.threshold = 2,
322-
323-
.dkgInterval = 24, // one DKG per hour
324-
.dkgPhaseBlocks = 2,
325-
.dkgMiningWindowStart = 10, // dkgPhaseBlocks * 5 = after finalization
326-
.dkgMiningWindowEnd = 18,
327-
.dkgBadVotesThreshold = 2,
328-
329-
.signingActiveQuorumCount = 2, // just a few ones to allow easier testing
330-
331-
.keepOldConnections = 3,
332-
.recoveryMembers = 3,
333-
};
334-
335-
// this one is for devnets only
336-
static Consensus::LLMQParams llmq_devnet = {
337-
.type = Consensus::LLMQ_DEVNET,
338-
.name = "llmq_devnet",
339-
.size = 10,
340-
.minSize = 7,
341-
.threshold = 6,
342-
343-
.dkgInterval = 24, // one DKG per hour
344-
.dkgPhaseBlocks = 2,
345-
.dkgMiningWindowStart = 10, // dkgPhaseBlocks * 5 = after finalization
346-
.dkgMiningWindowEnd = 18,
347-
.dkgBadVotesThreshold = 7,
348-
349-
.signingActiveQuorumCount = 3, // just a few ones to allow easier testing
350-
351-
.keepOldConnections = 4,
352-
.recoveryMembers = 6,
353-
};
354-
355-
static Consensus::LLMQParams llmq50_60 = {
356-
.type = Consensus::LLMQ_50_60,
357-
.name = "llmq_50_60",
358-
.size = 50,
359-
.minSize = 40,
360-
.threshold = 30,
361-
362-
.dkgInterval = 24, // one DKG per hour
363-
.dkgPhaseBlocks = 2,
364-
.dkgMiningWindowStart = 10, // dkgPhaseBlocks * 5 = after finalization
365-
.dkgMiningWindowEnd = 18,
366-
.dkgBadVotesThreshold = 40,
367-
368-
.signingActiveQuorumCount = 24, // a full day worth of LLMQs
369-
370-
.keepOldConnections = 25,
371-
.recoveryMembers = 25,
372-
};
373-
374-
static Consensus::LLMQParams llmq400_60 = {
375-
.type = Consensus::LLMQ_400_60,
376-
.name = "llmq_400_60",
377-
.size = 400,
378-
.minSize = 300,
379-
.threshold = 240,
380-
381-
.dkgInterval = 24 * 12, // one DKG every 12 hours
382-
.dkgPhaseBlocks = 4,
383-
.dkgMiningWindowStart = 20, // dkgPhaseBlocks * 5 = after finalization
384-
.dkgMiningWindowEnd = 28,
385-
.dkgBadVotesThreshold = 300,
386-
387-
.signingActiveQuorumCount = 4, // two days worth of LLMQs
388-
389-
.keepOldConnections = 5,
390-
.recoveryMembers = 100,
391-
};
392-
393-
// Used for deployment and min-proto-version signalling, so it needs a higher threshold
394-
static Consensus::LLMQParams llmq400_85 = {
395-
.type = Consensus::LLMQ_400_85,
396-
.name = "llmq_400_85",
397-
.size = 400,
398-
.minSize = 350,
399-
.threshold = 340,
400-
401-
.dkgInterval = 24 * 24, // one DKG every 24 hours
402-
.dkgPhaseBlocks = 4,
403-
.dkgMiningWindowStart = 20, // dkgPhaseBlocks * 5 = after finalization
404-
.dkgMiningWindowEnd = 48, // give it a larger mining window to make sure it is mined
405-
.dkgBadVotesThreshold = 300,
406-
407-
.signingActiveQuorumCount = 4, // four days worth of LLMQs
408-
409-
.keepOldConnections = 5,
410-
.recoveryMembers = 100,
411-
};
412-
413-
// Used for Platform
414-
static Consensus::LLMQParams llmq100_67 = {
415-
.type = Consensus::LLMQ_100_67,
416-
.name = "llmq_100_67",
417-
.size = 100,
418-
.minSize = 80,
419-
.threshold = 67,
420-
421-
.dkgInterval = 24, // one DKG per hour
422-
.dkgPhaseBlocks = 2,
423-
.dkgMiningWindowStart = 10, // dkgPhaseBlocks * 5 = after finalization
424-
.dkgMiningWindowEnd = 18,
425-
.dkgBadVotesThreshold = 80,
426-
427-
.signingActiveQuorumCount = 24, // a full day worth of LLMQs
428-
429-
.keepOldConnections = 25,
430-
.recoveryMembers = 50,
431-
};
432-
*/
433-
434294
/**
435295
* Main network
436296
*/
@@ -442,7 +302,6 @@ static Consensus::LLMQParams llmq100_67 = {
442302
* + Contains no strange transactions
443303
*/
444304

445-
446305
class CMainParams : public CChainParams {
447306
public:
448307
CMainParams() {
@@ -536,10 +395,10 @@ class CMainParams : public CChainParams {
536395
consensus.vDeployments[Consensus::DEPLOYMENT_DIP0020].nFalloffCoeff = 5; // this corresponds to 10 periods
537396

538397
// The best chain should have at least this much work.
539-
consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000000000000000562b792bb20"); // = 5.921.544.780.576 total work, block 222876
398+
consensus.nMinimumChainWork = uint256S("0x000000000000000000000000000000000000000000000000000007afbf36f91d");
540399

541400
// By default assume that the signatures in ancestors of this block are valid.
542-
consensus.defaultAssumeValid = uint256S("0x00000003bd8ad5f5f5373342f9c2fddfb33f9e0344eb743521631875b596a20a"); // 222876
401+
consensus.defaultAssumeValid = uint256S("0x0000003821872f60bb2ad615b632ea805d3472205bb9b29d1157b1947ef9c7fe"); // 308773
543402

544403
/**
545404
* The message start string is designed to be unlikely to occur in normal data.
@@ -629,9 +488,7 @@ class CMainParams : public CChainParams {
629488
{
630489
{ 0, uint256S("0x00000af4a21d6e8daa4026a5eafc7132089a7dbb9d3921b12c4fa39b78c9a010")}, // 2018-Aug-26
631490
{ 133, uint256S("0x00003c1aa0d920b6a665b71fb8ebde8dff0426ed02483a1f3165a1b9533f339f")}, // 2018-Aug-27
632-
{ 4600, uint256S("0x00003e6d58a4974170d74f8ccb55aca3afeca21fc6a25789c64a88ac3b44c239")}, // 2018-Sep-14
633491
{ 15000, uint256S("0x0000024a04c4ac9eb28385fa0a18b6911b7ee22c64c3af476cd72bcf27fa136f")}, // 2018-Oct-31
634-
{ 20013, uint256S("0x000000465d652bda5d5746ec620b0926de583a622011b61404af02fd07176236")}, // 2018-Nov-24
635492
{ 26990, uint256S("0x00000ac7439f65441970eed887d5bad2ecf6a1bbde4f39a4a21f50aaa648d049")}, // 2018-Dec-25
636493
{ 35993, uint256S("0x000000d3ea06a03deccce15641c113ce59bc9ed662d878eb1d971fb0478df9cc")}, // 2019-Feb-03
637494
{ 46096, uint256S("0x000000a402d9343d7b70df237cfedadefbd002d18f95ce775d33956e7f7e4141")}, // 2019-Mar-19
@@ -642,7 +499,6 @@ class CMainParams : public CChainParams {
642499
{100000, uint256S("0x00000095a23b6cc9ec9c0d7385bf4c3705220271d425a203af41163b4600e96d")}, // 2019-Nov-10
643500
{110034, uint256S("0x00000025fcd0421225ea0c8d5874b3040a81618c609f2419bce9d339a96faee7")}, // 2019-Dec-24
644501
{120004, uint256S("0x00000031fd82d41fa6fda29a405a55162304822be9b03beed79e47f25d3f3296")}, // 2020-Feb-06
645-
{127991, uint256S("0x00000042ec60e4badf5e3288b1dbb8da2a27af4b88b6ec299e7149586784ccfd")}, // 2020-Mar-12
646502
{135808, uint256S("0x00000025868ef0958009ba542ded2faf5242cd835445ca6c5556eff5a19161ab")}, // 2020-Apr-15
647503
{144997, uint256S("0x00000074c2b1520d116c447d2cf6170951642fc50487b300074d76952fc20a4d")}, // 2020-May-25
648504
{154972, uint256S("0x00000053c7c6c55129d6e9c9477ddcdbd351847d748ff77eff13dbc44bde58d4")}, // 2020-Jul-08
@@ -652,14 +508,19 @@ class CMainParams : public CChainParams {
652508
{199995, uint256S("0x00000009b7ca8806f82b23aa8464967c4f60134941208daa69c320a0c4e98be8")}, // 2021-Jan-21
653509
{212723, uint256S("0x0000000540497ce3a503d7f546f5faafe4c28e0e7a15cd81074416428b57a114")}, // 2021-Mar-18
654510
{222876, uint256S("0x00000003bd8ad5f5f5373342f9c2fddfb33f9e0344eb743521631875b596a20a")}, // 2021-May-01
511+
{238575, uint256S("0x000000122d79146f265ed51f8db833e1335e8ae96d3303f0a613b662aaeef89f")}, // 2021-Jul-09
512+
{252969, uint256S("0x000000c86207c746aa600071f13b869129a81f5f8c01c5fb4f13852ad5d98259")}, // 2021-Sep-10
513+
{266022, uint256S("0x00000039fe5539f91b9fd79cff3ffc0bdfc2f02dd2426eca5243ada3b77f804a")}, // 2021-Nov-06
514+
{280992, uint256S("0x00000048b0a7413cf8ed2324a41e71918aa0bbfac09ee88a37416771e9fb6edf")}, // 2022-Jan-11
515+
{293997, uint256S("0x0000001279263f8723a6efe088355e0390bc46eed91388476f1f4482dd1c42dc")}, // 2022-Mar-09
516+
{308773, uint256S("0x0000003821872f60bb2ad615b632ea805d3472205bb9b29d1157b1947ef9c7fe")}, // 2022-May-13
655517
}
656518
};
657519

658-
chainTxData = ChainTxData{
659-
1619902162, // * UNIX timestamp of last known number of transactions
660-
387457, // * total number of transactions between genesis and that timestamp
661-
// (the tx=... number in the UpdateTip debug.log lines)
662-
0.04 // * estimated number of transactions per second after that timestamp
520+
chainTxData = ChainTxData{ // RPC getchaintxstats
521+
1652430961, // * UNIX timestamp of last known number of transactions
522+
565691, // * total number of transactions between genesis and that timestamp
523+
0.02 // * estimated number of transactions per second after that timestamp
663524
};
664525
}
665526
};
@@ -759,10 +620,10 @@ class CTestNetParams : public CChainParams {
759620
consensus.vDeployments[Consensus::DEPLOYMENT_DIP0020].nFalloffCoeff = 5; // Dash: this corresponds to 10 periods
760621

761622
// The best chain should have at least this much work.
762-
consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000000000000000000009df47a"); // block 768
623+
consensus.nMinimumChainWork = uint256S("0x0000000000000000000000000000000000000000000000000000000021089c94");
763624

764625
// By default assume that the signatures in ancestors of this block are valid.
765-
consensus.defaultAssumeValid = uint256S("0x0001a493d1f95c60541d553e8f1b748d48e344a0a2c8c27460196a727555cea8");
626+
consensus.defaultAssumeValid = uint256S("0x00005202961d852e746013986d3c4b143ac3428251100ac1b7ae80e5fe5eaa68"); // 29899
766627

767628
pchMessageStart[0] = 0x74; // t in testnet4 (testnet3 used 0xce)
768629
pchMessageStart[1] = 0x44; // D
@@ -846,16 +707,19 @@ class CTestNetParams : public CChainParams {
846707
{
847708
{ 0, uint256S("0x0006eb6114355f76dd011fb716cdf087a2b4336aa4419d77d915c74e2e679da1")}, // 2022-Jan-08
848709
{ 768, uint256S("0x0001a493d1f95c60541d553e8f1b748d48e344a0a2c8c27460196a727555cea8")}, // 2022-Jan-13
710+
{ 6999, uint256S("0x0002900952a6eb1c2c1503886248b3d591bd38b221c72eca0f53024c9556cf84")}, // 2022-Feb-03
711+
{ 13955, uint256S("0x000012acb6a9cf11674a17212cdc87d3394d2d917e89d90189844273ed5faeb9")}, // 2022-Mar-04
712+
{ 20000, uint256S("0x00023d67d17c09597dca21fd69f6fc945ae081b404a356e020c018d3f5a9172d")}, // 2022-Mar-28
713+
{ 24995, uint256S("0x000274ac5ad773dd7d7360d5744eb57f105ab8a0e44fbbfc0487509e7a223d5c")}, // 2022-Apr-18
714+
{ 29899, uint256S("0x00005202961d852e746013986d3c4b143ac3428251100ac1b7ae80e5fe5eaa68")}, // 2022-May-13
849715
}
850716
};
851717

852-
chainTxData = ChainTxData{
853-
1642072314, // * UNIX timestamp of last known number of transactions
854-
815, // * total number of transactions between genesis and that timestamp
855-
// (the tx=... number in the UpdateTip debug.log lines)
856-
0.02 // * estimated number of transactions per second after that timestamp
718+
chainTxData = ChainTxData{ // RPC getchaintxstats
719+
1652443448, // * UNIX timestamp of last known number of transactions
720+
44633, // * total number of transactions between genesis and that timestamp
721+
0.0045 // * estimated number of transactions per second after that timestamp
857722
};
858-
859723
}
860724
};
861725

@@ -971,13 +835,12 @@ class CDevNetParams : public CChainParams {
971835
assert(genesis.hashMerkleRoot == uint256S("0xa500729aa7e2874bdb829c2e1ea99ef3542b7c43d426bca2f6720b9a9688308a"));
972836

973837
if (!fHelpOnly) {
974-
devnetGenesis = FindDevNetGenesisBlock(genesis, 50 * COIN); // TODO : set to 10 in next devnet?
838+
devnetGenesis = FindDevNetGenesisBlock(genesis, 50 * COIN); // set to 10 in next devnet?
975839
consensus.hashDevnetGenesisBlock = devnetGenesis.GetHash();
976840
}
977841

978842
vFixedSeeds.clear();
979843
vSeeds.clear();
980-
//vSeeds.push_back(CDNSSeedData("dashevo.org", "devnet-seed.dashevo.org"));
981844

982845
// Devnet DMS addresses start with 'y' (Dash default)
983846
base58Prefixes[PUBKEY_ADDRESS] = std::vector<unsigned char>(1,140);
@@ -1190,13 +1053,6 @@ class CRegTestParams : public CChainParams {
11901053
consensus.llmqTypeChainLocks = Consensus::LLMQ_150_60;
11911054
consensus.llmqTypeInstantSend = Consensus::LLMQ_30_60;
11921055
consensus.llmqTypePlatform = Consensus::LLMQ_100_67;
1193-
/* Dash v0.17 long living quorum params
1194-
consensus.llmqs[Consensus::LLMQ_TEST] = llmq_test;
1195-
consensus.llmqs[Consensus::LLMQ_TEST_V17] = llmq_test_v17;
1196-
consensus.llmqTypeChainLocks = Consensus::LLMQ_TEST;
1197-
consensus.llmqTypeInstantSend = Consensus::LLMQ_TEST;
1198-
consensus.llmqTypePlatform = Consensus::LLMQ_TEST;
1199-
*/
12001056
}
12011057
};
12021058

src/clientversion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
8. Heidi 0.12.16 8 Oct 2020
2828
9. Ivan 0.13.3 3 May 2021
2929
10. Judy 0.13.4 1 Feb 2022
30-
11. Kenji 0.17.0
30+
11. Kenji 0.17.0 14 May 2022
3131
*/
3232
#define RELEASE_CODE_NAME "Kenji"
3333

src/llmq/quorums_utils.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
// Copyright (c) 2018-2021 The Dash Core developers
2+
// Copyright (c) 2021-2022 The Documentchain developers
23
// Distributed under the MIT software license, see the accompanying
34
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
45

@@ -311,7 +312,6 @@ bool CLLMQUtils::IsQuorumTypeEnabled(Consensus::LLMQType llmqType, const CBlockI
311312
break;
312313
case Consensus::LLMQ_30_60:
313314
case Consensus::LLMQ_100_67:
314-
// case Consensus::LLMQ_TEST_V17: TODO
315315
if (!f_dip0020_Active) {
316316
return false;
317317
}

src/rpc/misc.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1318,8 +1318,8 @@ UniValue getinfo(const JSONRPCRequest& request)
13181318
**/
13191319
UniValue devgetinfo(const JSONRPCRequest& request)
13201320
{
1321-
return strprintf("%s %s %s", FormatVersion(CLIENT_VERSION), __DATE__, __TIME__);
1322-
//return FormatVersion(CLIENT_VERSION) + " release";
1321+
//return strprintf("%s %s %s", FormatVersion(CLIENT_VERSION), __DATE__, __TIME__);
1322+
return FormatVersion(CLIENT_VERSION) + " release";
13231323
}
13241324

13251325
static const CRPCCommand commands[] =

0 commit comments

Comments
 (0)