From 8dbdd59be7f945ac3a1043b05f86b1b65d9a9b33 Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Sat, 17 Jun 2023 18:50:26 +0300 Subject: [PATCH 1/8] chore: prettify json representations of CSimplifiedMNListEntry and CSimplifiedMNListDiff (#5434) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Issue being fixed or feature implemented Should fix https://github.com/dashpay/dash/pull/5424#discussion_r1228654939 and make `CSimplifiedMNListEntry`'s json a bit more human-friendly (imo) by having `nVersion` and `nType` at the top of it. Move `nVersion` up for `CSimplifiedMNListDiff` too. NOTE: `nVersion` wasn't actually duplicated in rpc results, it was simply assigned twice inside. still not nice though. Thanks @thephez ! 👍 ## What was done? ## How Has This Been Tested? ## Breaking Changes n/a ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ --- src/evo/simplifiedmns.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/evo/simplifiedmns.cpp b/src/evo/simplifiedmns.cpp index 5bdca1047abcf..c7afa8c1c922a 100644 --- a/src/evo/simplifiedmns.cpp +++ b/src/evo/simplifiedmns.cpp @@ -67,14 +67,13 @@ void CSimplifiedMNListEntry::ToJson(UniValue& obj, bool extended) const obj.clear(); obj.setObject(); obj.pushKV("nVersion", nVersion); + obj.pushKV("nType", ToUnderlying(nType)); obj.pushKV("proRegTxHash", proRegTxHash.ToString()); obj.pushKV("confirmedHash", confirmedHash.ToString()); obj.pushKV("service", service.ToString(false)); obj.pushKV("pubKeyOperator", pubKeyOperator.ToString()); obj.pushKV("votingAddress", EncodeDestination(PKHash(keyIDVoting))); obj.pushKV("isValid", isValid); - obj.pushKV("nVersion", nVersion); - obj.pushKV("nType", ToUnderlying(nType)); if (nType == MnType::HighPerformance) { obj.pushKV("platformHTTPPort", platformHTTPPort); obj.pushKV("platformNodeID", platformNodeID.ToString()); @@ -185,6 +184,7 @@ void CSimplifiedMNListDiff::ToJson(UniValue& obj, bool extended) const { obj.setObject(); + obj.pushKV("nVersion", nVersion); obj.pushKV("baseBlockHash", baseBlockHash.ToString()); obj.pushKV("blockHash", blockHash.ToString()); @@ -207,7 +207,6 @@ void CSimplifiedMNListDiff::ToJson(UniValue& obj, bool extended) const mnListArr.push_back(eObj); } obj.pushKV("mnList", mnListArr); - obj.pushKV("nVersion", nVersion); UniValue deletedQuorumsArr(UniValue::VARR); for (const auto& e : deletedQuorums) { From 37f72084717ecab0f77c56632de9de741c03c954 Mon Sep 17 00:00:00 2001 From: Odysseas Gabrielides Date: Sat, 17 Jun 2023 18:48:39 +0300 Subject: [PATCH 2/8] chore(rpc): remove collateral amount from help (#5438) Removed collateral amount from help text for `protx register_fund_hpmn` RPC. - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ --- src/rpc/evo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rpc/evo.cpp b/src/rpc/evo.cpp index bb6f64806668a..ab129fb1d63a4 100644 --- a/src/rpc/evo.cpp +++ b/src/rpc/evo.cpp @@ -504,7 +504,7 @@ static void protx_register_fund_hpmn_help(const JSONRPCRequest& request) RPCResult::Type::STR_HEX, "hex", "The serialized signed ProTx in hex format"}, }, RPCExamples{ - HelpExampleCli("protx", "register_fund_hpmn \"XrVhS9LogauRJGJu2sHuryjhpuex4RNPSb\" 1000 \"1.2.3.4:1234\" \"Xt9AMWaYSz7tR7Uo7gzXA3m4QmeWgrR3rr\" \"93746e8731c57f87f79b3620a7982924e2931717d49540a85864bd543de11c43fb868fd63e501a1db37e19ed59ae6db4\" \"Xt9AMWaYSz7tR7Uo7gzXA3m4QmeWgrR3rr\" 0 \"XrVhS9LogauRJGJu2sHuryjhpuex4RNPSb\" \"f2dbd9b0a1f541a7c44d34a58674d0262f5feca5\" 22821 22822")}, + HelpExampleCli("protx", "register_fund_hpmn \"XrVhS9LogauRJGJu2sHuryjhpuex4RNPSb\" \"1.2.3.4:1234\" \"Xt9AMWaYSz7tR7Uo7gzXA3m4QmeWgrR3rr\" \"93746e8731c57f87f79b3620a7982924e2931717d49540a85864bd543de11c43fb868fd63e501a1db37e19ed59ae6db4\" \"Xt9AMWaYSz7tR7Uo7gzXA3m4QmeWgrR3rr\" 0 \"XrVhS9LogauRJGJu2sHuryjhpuex4RNPSb\" \"f2dbd9b0a1f541a7c44d34a58674d0262f5feca5\" 22821 22822")}, }.Check(request); } From d1aa209d954daf78263172caa7c5ed3d58dbf290 Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Sat, 17 Jun 2023 18:49:37 +0300 Subject: [PATCH 3/8] chore(rpc): few cleanups in evo rpc help texts (#5439) ## Issue being fixed or feature implemented fix a couple of issues in help texts develop: ``` protx register "collateralHash" collateralIndex "ipAndPort" "ownerAddress" "operatorPubKey_register" "votingAddress_register" "operatorReward" "payoutAddress_register" ( "feeSourceAddress" submit ) ... 3. ipAndPort (string, required) IP and port in the form "IP:PORT". Must be unique on the network. Can be set to 0, which will require a ProUpServTx afterwards. ... 5. operatorPubKey_register (string, required) The operator BLS public key. The BLS private key does not have to be known. It has to match the BLS private key which is later used when operating the masternode. 6. votingAddress_register (string, required) The voting key address. The private key does not have to be known by your wallet. It has to match the private key which is later used when voting on proposals. If set to an empty string, ownerAddress will be used. 7. operatorReward (string, required) The fraction in %% to share with the operator. The value must be between 0.00 and 100.00. 8. payoutAddress_register (string, required) The dash address to use for masternode reward payments. ... ``` ``` protx update_service "proTxHash" "ipAndPort" "operatorKey" ( "operatorPayoutAddress" "feeSourceAddress" ) ... 2. ipAndPort (string, required) IP and port in the form "IP:PORT". Must be unique on the network. Can be set to 0, which will require a ProUpServTx afterwards. ... ``` fe95dfdd7a97ae5150d8e28ea908f619c6080008: ``` protx register "collateralHash" collateralIndex "ipAndPort" "ownerAddress" "operatorPubKey" "votingAddress" "operatorReward" "payoutAddress" ( "feeSourceAddress" submit ) ... 3. ipAndPort (string, required) IP and port in the form "IP:PORT". Must be unique on the network. Can be set to an empty string, which will require a ProUpServTx afterwards. ... 5. operatorPubKey (string, required) The operator BLS public key. The BLS private key does not have to be known. It has to match the BLS private key which is later used when operating the masternode. 6. votingAddress (string, required) The voting key address. The private key does not have to be known by your wallet. It has to match the private key which is later used when voting on proposals. If set to an empty string, ownerAddress will be used. 7. operatorReward (string, required) The fraction in %% to share with the operator. The value must be between 0 and 10000. 8. payoutAddress (string, required) The dash address to use for masternode reward payments. ... ``` ``` protx update_service "proTxHash" "ipAndPort" "operatorKey" ( "operatorPayoutAddress" "feeSourceAddress" ) ... 2. ipAndPort (string, required) IP and port in the form "IP:PORT". Must be unique on the network. ... ``` ## What was done? pls see individual commits ## How Has This Been Tested? run `dash-qt`, check `help ` response ## Breaking Changes n/a ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ --- src/rpc/evo.cpp | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/src/rpc/evo.cpp b/src/rpc/evo.cpp index ab129fb1d63a4..ba85e19bf18ff 100644 --- a/src/rpc/evo.cpp +++ b/src/rpc/evo.cpp @@ -70,8 +70,12 @@ static RPCArg GetRpcArg(const std::string& strParamName) }, {"ipAndPort", {"ipAndPort", RPCArg::Type::STR, RPCArg::Optional::NO, - "IP and port in the form \"IP:PORT\".\n" - "Must be unique on the network. Can be set to 0, which will require a ProUpServTx afterwards."} + "IP and port in the form \"IP:PORT\". Must be unique on the network.\n" + "Can be set to an empty string, which will require a ProUpServTx afterwards."} + }, + {"ipAndPort_update", + {"ipAndPort", RPCArg::Type::STR, RPCArg::Optional::NO, + "IP and port in the form \"IP:PORT\". Must be unique on the network."} }, {"operatorKey", {"operatorKey", RPCArg::Type::STR, RPCArg::Optional::NO, @@ -85,31 +89,31 @@ static RPCArg GetRpcArg(const std::string& strParamName) "If set to an empty string, the currently active payout address is reused."} }, {"operatorPubKey_register", - {"operatorPubKey_register", RPCArg::Type::STR, RPCArg::Optional::NO, + {"operatorPubKey", RPCArg::Type::STR, RPCArg::Optional::NO, "The operator BLS public key. The BLS private key does not have to be known.\n" "It has to match the BLS private key which is later used when operating the masternode."} }, {"operatorPubKey_register_legacy", - {"operatorPubKey_register", RPCArg::Type::STR, RPCArg::Optional::NO, - "The operator BLS public key in legacy scheme. The BLS private key does not have to be known.\n" - "It has to match the BLS private key which is later used when operating the masternode.\n"} + {"operatorPubKey", RPCArg::Type::STR, RPCArg::Optional::NO, + "The operator BLS public key in legacy scheme. The BLS private key does not have to be known.\n" + "It has to match the BLS private key which is later used when operating the masternode.\n"} }, {"operatorPubKey_update", - {"operatorPubKey_update", RPCArg::Type::STR, RPCArg::Optional::NO, + {"operatorPubKey", RPCArg::Type::STR, RPCArg::Optional::NO, "The operator BLS public key. The BLS private key does not have to be known.\n" "It has to match the BLS private key which is later used when operating the masternode.\n" "If set to an empty string, the currently active operator BLS public key is reused."} }, {"operatorPubKey_update_legacy", - {"operatorPubKey_update", RPCArg::Type::STR, RPCArg::Optional::NO, - "The operator BLS public key in legacy scheme. The BLS private key does not have to be known.\n" - "It has to match the BLS private key which is later used when operating the masternode.\n" - "If set to an empty string, the currently active operator BLS public key is reused."} + {"operatorPubKey", RPCArg::Type::STR, RPCArg::Optional::NO, + "The operator BLS public key in legacy scheme. The BLS private key does not have to be known.\n" + "It has to match the BLS private key which is later used when operating the masternode.\n" + "If set to an empty string, the currently active operator BLS public key is reused."} }, {"operatorReward", {"operatorReward", RPCArg::Type::STR, RPCArg::Optional::NO, - "The fraction in %% to share with the operator. The value must be\n" - "between 0.00 and 100.00."} + "The fraction in %% to share with the operator.\n" + "The value must be between 0 and 10000."} }, {"ownerAddress", {"ownerAddress", RPCArg::Type::STR, RPCArg::Optional::NO, @@ -118,11 +122,11 @@ static RPCArg GetRpcArg(const std::string& strParamName) "The address must be unused and must differ from the collateralAddress."} }, {"payoutAddress_register", - {"payoutAddress_register", RPCArg::Type::STR, RPCArg::Optional::NO, + {"payoutAddress", RPCArg::Type::STR, RPCArg::Optional::NO, "The dash address to use for masternode reward payments."} }, {"payoutAddress_update", - {"payoutAddress_update", RPCArg::Type::STR, RPCArg::Optional::NO, + {"payoutAddress", RPCArg::Type::STR, RPCArg::Optional::NO, "The dash address to use for masternode reward payments.\n" "If set to an empty string, the currently active payout address is reused."} }, @@ -139,13 +143,13 @@ static RPCArg GetRpcArg(const std::string& strParamName) "If true, the resulting transaction is sent to the network."} }, {"votingAddress_register", - {"votingAddress_register", RPCArg::Type::STR, RPCArg::Optional::NO, + {"votingAddress", RPCArg::Type::STR, RPCArg::Optional::NO, "The voting key address. The private key does not have to be known by your wallet.\n" "It has to match the private key which is later used when voting on proposals.\n" "If set to an empty string, ownerAddress will be used."} }, {"votingAddress_update", - {"votingAddress_update", RPCArg::Type::STR, RPCArg::Optional::NO, + {"votingAddress", RPCArg::Type::STR, RPCArg::Optional::NO, "The voting key address. The private key does not have to be known by your wallet.\n" "It has to match the private key which is later used when voting on proposals.\n" "If set to an empty string, the currently active voting key address is reused."} @@ -671,7 +675,7 @@ static UniValue protx_register_common_wrapper(const JSONRPCRequest& request, throw JSONRPCError(RPC_INVALID_PARAMETER, "operatorReward must be a number"); } if (operatorReward < 0 || operatorReward > 10000) { - throw JSONRPCError(RPC_INVALID_PARAMETER, "operatorReward must be between 0.00 and 100.00"); + throw JSONRPCError(RPC_INVALID_PARAMETER, "operatorReward must be between 0 and 10000"); } ptx.nOperatorReward = operatorReward; @@ -843,7 +847,7 @@ static void protx_update_service_help(const JSONRPCRequest& request) + HELP_REQUIRING_PASSPHRASE, { GetRpcArg("proTxHash"), - GetRpcArg("ipAndPort"), + GetRpcArg("ipAndPort_update"), GetRpcArg("operatorKey"), GetRpcArg("operatorPayoutAddress"), GetRpcArg("feeSourceAddress"), @@ -867,7 +871,7 @@ static void protx_update_service_hpmn_help(const JSONRPCRequest& request) HELP_REQUIRING_PASSPHRASE, { GetRpcArg("proTxHash"), - GetRpcArg("ipAndPort"), + GetRpcArg("ipAndPort_update"), GetRpcArg("operatorKey"), GetRpcArg("platformNodeID"), GetRpcArg("platformP2PPort"), From 3f44f63ecb33e4a11fb8a1084bbaccab9674359d Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Sat, 17 Jun 2023 19:16:28 +0300 Subject: [PATCH 4/8] chore: update chainparams for v19.2 release (#5441) bump chainparams to some post failed-v19-fork block on mainnet and post recent-v19-fork block on testnet - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ --- src/chainparams.cpp | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 8a121c9eb6b30..09f5097e7b02b 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -246,10 +246,10 @@ class CMainParams : public CChainParams { consensus.vDeployments[Consensus::DEPLOYMENT_V19].nFalloffCoeff = 5; // this corresponds to 10 periods // The best chain should have at least this much work. - consensus.nMinimumChainWork = uint256S("0x0000000000000000000000000000000000000000000082094584a23266cbb5f8"); // 1850400 + consensus.nMinimumChainWork = uint256S("0x000000000000000000000000000000000000000000008677827656704520eb39"); // 1889000 // By default assume that the signatures in ancestors of this block are valid. - consensus.defaultAssumeValid = uint256S("0x00000000000000261bdbe99c01fcba992e577efa6cc41aae564b8ca9f112b2a3"); // 1850400 + consensus.defaultAssumeValid = uint256S("0x00000000000000075300e852d5bf5380f905b2768241f8b442498442084807a7"); // 1889000 /** * The message start string is designed to be unlikely to occur in normal data. @@ -355,15 +355,16 @@ class CMainParams : public CChainParams { {1450000, uint256S("0x00000000000000105cfae44a995332d8ec256850ea33a1f7b700474e3dad82bc")}, {1796500, uint256S("0x000000000000001d531f36005159f19351bd49ca676398a561e55dcccb84eacd")}, {1850400, uint256S("0x00000000000000261bdbe99c01fcba992e577efa6cc41aae564b8ca9f112b2a3")}, + {1889000, uint256S("0x00000000000000075300e852d5bf5380f905b2768241f8b442498442084807a7")}, } }; - // getchaintxstats 17280 00000000000000261bdbe99c01fcba992e577efa6cc41aae564b8ca9f112b2a3 + // getchaintxstats 17280 00000000000000075300e852d5bf5380f905b2768241f8b442498442084807a7 chainTxData = ChainTxData{ - 1680866408, // * UNIX timestamp of last known number of transactions (Block 1718597) - 47139357, // * total number of transactions between genesis and that timestamp + 1687008680, // * UNIX timestamp of last known number of transactions (Block 1889000) + 48071282, // * total number of transactions between genesis and that timestamp // (the tx=... number in the ChainStateFlushed debug.log lines) - 0.168014362704521, // * estimated number of transactions per second after that timestamp + 0.1420701358442986, // * estimated number of transactions per second after that timestamp }; } }; @@ -485,10 +486,10 @@ class CTestNetParams : public CChainParams { consensus.vDeployments[Consensus::DEPLOYMENT_V19].nFalloffCoeff = 5; // this corresponds to 10 periods // The best chain should have at least this much work. - consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000000000002d68c6dc9ca04f3"); // 840000 + consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000000000002d68c8cc1b8e54b"); // 851000 // By default assume that the signatures in ancestors of this block are valid. - consensus.defaultAssumeValid = uint256S("0x000000cd7c3084499912ae893125c13e8c3c656abb6e511dcec6619c3d65a510"); // 840000 + consensus.defaultAssumeValid = uint256S("0x0000014d3b875540ff75517b7fbb1714e25d50ce92f65d7086cfce357928bb02"); // 851000 pchMessageStart[0] = 0xce; pchMessageStart[1] = 0xe2; @@ -569,15 +570,16 @@ class CTestNetParams : public CChainParams { {794950, uint256S("0x000001860e4c7248a9c5cc3bc7106041750560dc5cd9b3a2641b49494bcff5f2")}, {808000, uint256S("0x00000104cb60a2b5e00a8a4259582756e5bf0dca201c0993c63f0e54971ea91a")}, {840000, uint256S("0x000000cd7c3084499912ae893125c13e8c3c656abb6e511dcec6619c3d65a510")}, + {851000, uint256S("0x0000014d3b875540ff75517b7fbb1714e25d50ce92f65d7086cfce357928bb02")}, } }; - // getchaintxstats 17280 000000cd7c3084499912ae893125c13e8c3c656abb6e511dcec6619c3d65a510 + // getchaintxstats 17280 0000014d3b875540ff75517b7fbb1714e25d50ce92f65d7086cfce357928bb02 chainTxData = ChainTxData{ - 1676885923, // * UNIX timestamp of last known number of transactions (Block 840000) - 5776047, // * total number of transactions between genesis and that timestamp + 1686952567, // * UNIX timestamp of last known number of transactions (Block 851000) + 5800114, // * total number of transactions between genesis and that timestamp // (the tx=... number in the ChainStateFlushed debug.log lines) - 0.01120953982471268, // * estimated number of transactions per second after that timestamp + 0.003166265599662275, // * estimated number of transactions per second after that timestamp }; } }; From 9fbb85270a3f4e53a041127bb26a33893d5bbdf5 Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Sat, 17 Jun 2023 19:26:05 +0300 Subject: [PATCH 5/8] chore: run `gen-manpages.sh` for v19.2 (#5442) ## Issue being fixed or feature implemented ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ --- doc/man/dash-cli.1 | 8 ++++---- doc/man/dash-qt.1 | 12 ++++++------ doc/man/dash-tx.1 | 8 ++++---- doc/man/dash-wallet.1 | 8 ++++---- doc/man/dashd.1 | 12 ++++++------ 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/doc/man/dash-cli.1 b/doc/man/dash-cli.1 index b80a82e891b56..c9fa2756f9687 100644 --- a/doc/man/dash-cli.1 +++ b/doc/man/dash-cli.1 @@ -1,7 +1,7 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2. -.TH DASH-CLI "1" "April 2023" "dash-cli v19.0.0" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. +.TH DASH-CLI "1" "June 2023" "dash-cli v19.2.0" "User Commands" .SH NAME -dash-cli \- manual page for dash-cli v19.0.0 +dash-cli \- manual page for dash-cli v19.2.0 .SH SYNOPSIS .B dash-cli [\fI\,options\/\fR] \fI\, \/\fR[\fI\,params\/\fR] \fI\,Send command to Dash Core\/\fR @@ -15,7 +15,7 @@ dash-cli \- manual page for dash-cli v19.0.0 .B dash-cli [\fI\,options\/\fR] \fI\,help Get help for a command\/\fR .SH DESCRIPTION -Dash Core RPC client version v19.0.0 +Dash Core RPC client version v19.2.0 .SH OPTIONS .HP \-? diff --git a/doc/man/dash-qt.1 b/doc/man/dash-qt.1 index 3594aa3a8cf00..a4a36ade31779 100644 --- a/doc/man/dash-qt.1 +++ b/doc/man/dash-qt.1 @@ -1,12 +1,12 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2. -.TH DASH-QT "1" "April 2023" "dash-qt v19.0.0" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. +.TH DASH-QT "1" "June 2023" "dash-qt v19.2.0" "User Commands" .SH NAME -dash-qt \- manual page for dash-qt v19.0.0 +dash-qt \- manual page for dash-qt v19.2.0 .SH SYNOPSIS .B dash-qt [\fI\,command-line options\/\fR] .SH DESCRIPTION -Dash Core version v19.0.0 +Dash Core version v19.2.0 .SH OPTIONS .HP \-? @@ -23,9 +23,9 @@ message) If this block is in the chain assume that it and its ancestors are valid and potentially skip their script verification (0 to verify all, default: -00000000000000261bdbe99c01fcba992e577efa6cc41aae564b8ca9f112b2a3, +00000000000000075300e852d5bf5380f905b2768241f8b442498442084807a7, testnet: -0000005c35514190ef3c38d322f69412553dc7e1107ed5f92adc2935b90acc51) +0000014d3b875540ff75517b7fbb1714e25d50ce92f65d7086cfce357928bb02) .HP \fB\-blockfilterindex=\fR .IP diff --git a/doc/man/dash-tx.1 b/doc/man/dash-tx.1 index a0691112d8537..440e9170c5648 100644 --- a/doc/man/dash-tx.1 +++ b/doc/man/dash-tx.1 @@ -1,7 +1,7 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2. -.TH DASH-TX "1" "April 2023" "dash-tx v19.0.0" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. +.TH DASH-TX "1" "June 2023" "dash-tx v19.2.0" "User Commands" .SH NAME -dash-tx \- manual page for dash-tx v19.0.0 +dash-tx \- manual page for dash-tx v19.2.0 .SH SYNOPSIS .B dash-tx [\fI\,options\/\fR] \fI\, \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded dash transaction\/\fR @@ -9,7 +9,7 @@ dash-tx \- manual page for dash-tx v19.0.0 .B dash-tx [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded dash transaction\/\fR .SH DESCRIPTION -Dash Core dash\-tx utility version v19.0.0 +Dash Core dash\-tx utility version v19.2.0 .SH OPTIONS .HP \-? diff --git a/doc/man/dash-wallet.1 b/doc/man/dash-wallet.1 index b3ff83e20b49e..51f6d1ddd0f85 100644 --- a/doc/man/dash-wallet.1 +++ b/doc/man/dash-wallet.1 @@ -1,9 +1,9 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2. -.TH DASH-WALLET "1" "April 2023" "dash-wallet v19.0.0" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. +.TH DASH-WALLET "1" "June 2023" "dash-wallet v19.2.0" "User Commands" .SH NAME -dash-wallet \- manual page for dash-wallet v19.0.0 +dash-wallet \- manual page for dash-wallet v19.2.0 .SH DESCRIPTION -Dash Core dash\-wallet version v19.0.0 +Dash Core dash\-wallet version v19.2.0 .PP dash\-wallet is an offline tool for creating and interacting with Dash Core wallet files. By default dash\-wallet will act on wallets in the default mainnet wallet directory in the datadir. diff --git a/doc/man/dashd.1 b/doc/man/dashd.1 index 7c9d6f412a38d..3c35690a195ef 100644 --- a/doc/man/dashd.1 +++ b/doc/man/dashd.1 @@ -1,12 +1,12 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2. -.TH DASHD "1" "April 2023" "dashd v19.0.0" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. +.TH DASHD "1" "June 2023" "dashd v19.2.0" "User Commands" .SH NAME -dashd \- manual page for dashd v19.0.0 +dashd \- manual page for dashd v19.2.0 .SH SYNOPSIS .B dashd [\fI\,options\/\fR] \fI\,Start Dash Core Daemon\/\fR .SH DESCRIPTION -Dash Core Daemon version v19.0.0 +Dash Core Daemon version v19.2.0 .SH OPTIONS .HP \-? @@ -23,9 +23,9 @@ message) If this block is in the chain assume that it and its ancestors are valid and potentially skip their script verification (0 to verify all, default: -00000000000000261bdbe99c01fcba992e577efa6cc41aae564b8ca9f112b2a3, +00000000000000075300e852d5bf5380f905b2768241f8b442498442084807a7, testnet: -0000005c35514190ef3c38d322f69412553dc7e1107ed5f92adc2935b90acc51) +0000014d3b875540ff75517b7fbb1714e25d50ce92f65d7086cfce357928bb02) .HP \fB\-blockfilterindex=\fR .IP From 15c034d84aeb365f383bcef8f93b7bb93bbfc9eb Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Thu, 15 Jun 2023 21:39:46 +0300 Subject: [PATCH 6/8] chore: archive v19.1.0 release notes --- .../dash/release-notes-19.1.0.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename doc/{release-notes.md => release-notes/dash/release-notes-19.1.0.md} (100%) diff --git a/doc/release-notes.md b/doc/release-notes/dash/release-notes-19.1.0.md similarity index 100% rename from doc/release-notes.md rename to doc/release-notes/dash/release-notes-19.1.0.md From dfb02be2436a5109430131f3d79299bacb0021a8 Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Fri, 16 Jun 2023 01:11:06 +0300 Subject: [PATCH 7/8] doc: add v19.2.0 release notes --- doc/release-notes.md | 187 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 doc/release-notes.md diff --git a/doc/release-notes.md b/doc/release-notes.md new file mode 100644 index 0000000000000..02523da7eabd6 --- /dev/null +++ b/doc/release-notes.md @@ -0,0 +1,187 @@ +# Dash Core version v19.2.0 + +Release is now available from: + + + +This is a new minor version release, bringing various bugfixes and other +improvements. + +This release is mandatory for all nodes. This release resolves issues around the +v19 Hard Fork activation. All nodes must upgrade to continue syncing properly. + +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. + +At the first startup Dash Core will run a migration process which can take +anywhere from a few minutes to thirty minutes to finish. After the migration, +a downgrade to an older version is only possible with a reindex. + +Please note that seamless migration is only possible on nodes which did not +reach the v19 fork block. Nodes that reached it can either rewind a couple +of blocks back to a pre-v19 block using `invalidateblock` RPC while still +running the old version or they can reindex instead. + +## Downgrade warning + +### Downgrade to a version < v19.2.0 + +Downgrading to a version older than v19.2.0 is not supported due to changes +in the evodb database. If you need to use an older version, you must either +reindex or re-sync the whole chain. + +# Notable changes + +## Resolve v19 Hard Fork Issues + +One of the goals for the v19 Hard Fork was to activate basic BLS scheme and +start using it in various on-chain and p2p messages. The motivation behind this +change is the need to be aligned with IETF standards. Unfortunately, a few edge +cases were missed in our functional tests and were not caught on testnet either. +v19 activation attempt on mainnet hit one of these edge cases and mainnet +stopped producing blocks. As an intermediate solution v19.1.0 was released which +delayed the start of the signaling for the v19 Hard Fork until June 14th. + +To resolve these issues we had to rework the way BLS public keys are handled +including the way they are serialized in the internal database. This made it +incompatible with older versions of Dash Core, so a db migration path was +implemented for all recent versions. + +## Improve migration and historical data support on light clients + +As a side-effect, the solution implemented to resolve v19 Hard Fork issues +opened a path to simplify v19 migration for mobile wallets. + +With previous implementation mobile wallets would have to convert 4k+ pubkeys +at the v19 fork point and that can easily take 10-15 seconds if not more. +Also, after the v19 Hard Fork, if a masternode list is requested from a block +before the v19 Hard Fork, the operator keys were coming in basic BLS scheme, +but the masternode merkleroot hash stored in coinbase transaction at that time +was calculated with legacy BLS scheme. Hence it was impossible to verify the +merkleroot hash. + +To fix these issues a new field `nVersion` was introduced for every entry in +`mnlistdiff` p2p message. This field indicates which BLS scheme should be used +when deserialising the message - legacy or basic. `nVersion` of the `mnlistdiff` +message itself will no longer indicate the scheme and must always be set to `1`. + +## Improve mixing support on light clients + +Recent changes to `dsq` and `dstx` messages allowed mobile clients that get +masternode lists from `mnlistdiff` message to determine the masternode related +to these messages because the `proTxHash` was used instead of the +`masternodeOutpoint`. Once the v19 Hard Fork activates the signature of `dsq` +and `dstx` messages will be based on the `proTxHash` which should make it +possible for mobile clients to verify it. + +## Allow keeping Chainlocks enabled without signing new ones + +Before this version Chainlocks were either enabled or disabled. Starting with +this version it's possible to set `SPORK_19_CHAINLOCKS_ENABLED` to a non-zero +value to disable the signing of new Chainlocks while still enforcing the best +known one. + +## Other changes + +There were a few other minor changes too, specifically: +- reindex on DB corruption should now start properly in Qt +- a mnemonic passphrase longer than 256 symbols no longer crashes the wallet +- a Qt node running with `-disablewawllet` flag should not crash in Settings now +- `-masternodeblsprivkey` and `-sporkkey` values are no longer printed in +`debug.log` +- should use less memory in the long run comparing to older versions +- gmp library detection should work better on macos +- fixed a couple of typos + +# v19.2.0 Change log + +See detailed [set of changes](https://github.com/dashpay/dash/compare/v19.1.0...dashpay:v19.2.0). + +# Credits + +Thanks to everyone who directly contributed to this release: + +- Konstantin Akimov (knst) +- Nathan Marley (nmarley) +- PastaPastaPasta +- thephez +- UdjinM6 + +As well as everyone that submitted issues, reviewed pull requests and helped +debug the release candidates. + +# 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: + +- [v19.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.0.0.md) released May/22/2023 +- [v19.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.0.0.md) released Apr/14/2023 +- [v18.2.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.2.md) released Mar/21/2023 +- [v18.2.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.1.md) released Jan/17/2023 +- [v18.2.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.0.md) released Jan/01/2023 +- [v18.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.1.1.md) released January/08/2023 +- [v18.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.1.0.md) released October/09/2022 +- [v18.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.0.2.md) released October/09/2022 +- [v18.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.0.1.md) released August/17/2022 +- [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 +- [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 +- [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 +- [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 +- [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 +- [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 +- [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 +- [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 +- [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 +- [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 From b98d5acddccd4bf69dec12ae36ff8bb2dac73e5e Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Sat, 17 Jun 2023 19:12:10 +0300 Subject: [PATCH 8/8] chore: update version to "19.2 release" --- configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 2a977535b7f61..eb6e4d9ddbeaf 100644 --- a/configure.ac +++ b/configure.ac @@ -2,8 +2,8 @@ AC_PREREQ([2.69]) define(_CLIENT_VERSION_MAJOR, 19) define(_CLIENT_VERSION_MINOR, 2) define(_CLIENT_VERSION_BUILD, 0) -define(_CLIENT_VERSION_RC, 1) -define(_CLIENT_VERSION_IS_RELEASE, false) +define(_CLIENT_VERSION_RC, 0) +define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2023) define(_COPYRIGHT_HOLDERS,[The %s developers]) define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Dash Core]])