aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRoss Nicoll <[email protected]>2021-05-31 12:01:25 +0100
committerRoss Nicoll <[email protected]>2021-06-02 10:37:16 +0100
commit66d40c059a99157788843c05fe499f9996ed27a4 (patch)
treee440a18b5bb2c86b3620ec295356255cb365dc38 /src
parentReplace consensus values with Dogecoin equivalents (diff)
downloaddiscoin-66d40c059a99157788843c05fe499f9996ed27a4.tar.xz
discoin-66d40c059a99157788843c05fe499f9996ed27a4.zip
Remove default Signet
Diffstat (limited to 'src')
-rw-r--r--src/chainparams.cpp68
-rw-r--r--src/init.cpp4
2 files changed, 16 insertions, 56 deletions
diff --git a/src/chainparams.cpp b/src/chainparams.cpp
index 9c8fdcbcc..dd3e4a5a7 100644
--- a/src/chainparams.cpp
+++ b/src/chainparams.cpp
@@ -5,7 +5,6 @@
#include <chainparams.h>
-#include <arith_uint256.h>
#include <chainparamsseeds.h>
#include <consensus/merkle.h>
#include <hash.h> // for signet block challenge hash
@@ -19,25 +18,6 @@
#include <boost/algorithm/string/classification.hpp>
#include <boost/algorithm/string/split.hpp>
-bool CheckProofOfWorkSimplified(uint256 hash, unsigned int nBits)
-{
- bool fNegative;
- bool fOverflow;
- arith_uint256 bnTarget;
-
- bnTarget.SetCompact(nBits, &fNegative, &fOverflow);
-
- // Check range
- if (fNegative || bnTarget == 0 || fOverflow)
- return false;
-
- // Check proof of work matches claimed amount
- if (UintToArith256(hash) > bnTarget)
- return false;
-
- return true;
-}
-
static CBlock CreateGenesisBlock(const char* pszTimestamp, const CScript& genesisOutputScript, uint32_t nTime, uint32_t nNonce, uint32_t nBits, int32_t nVersion, const CAmount& genesisReward)
{
CMutableTransaction txNew;
@@ -308,41 +288,27 @@ public:
vSeeds.clear();
if (!args.IsArgSet("-signetchallenge")) {
- // Dogecoin: Replace these with new values
- bin = ParseHex("512103ad5e0edad18cb1f0fc0d28a3d4f1f3e445640337489abb10404f2d1e086be430210359ef5021964fe22d6f8e05b2463c9540ce96883fe3b278760f048f5189f2e6c452ae");
- vSeeds.emplace_back("178.128.221.177");
- vSeeds.emplace_back("2a01:7c8:d005:390::5");
- vSeeds.emplace_back("v7ajjeirttkbnt32wpy3c6w3emwnfr3fkla7hpxcfokr3ysd3kqtzmqd.onion:38333");
-
- consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000000000000000019fd16269a");
- consensus.defaultAssumeValid = uint256S("0x0000002a1de0f46379358c1fd09906f7ac59adf3712323ed90eb59e4c183c020"); // 9434
- m_assumed_blockchain_size = 1;
- m_assumed_chain_state_size = 0;
- chainTxData = ChainTxData{
- // Data from RPC: getchaintxstats 4096 0000002a1de0f46379358c1fd09906f7ac59adf3712323ed90eb59e4c183c020
- /* nTime */ 1603986000,
- /* nTxCount */ 9582,
- /* dTxRate */ 0.00159272030651341,
- };
+ // Dogecoin: Use OP_FALSE as challenge, as we have no default Signet
+ bin = ParseHex("50");
} else {
const auto signet_challenge = args.GetArgs("-signetchallenge");
if (signet_challenge.size() != 1) {
throw std::runtime_error(strprintf("%s: -signetchallenge cannot be multiple values.", __func__));
}
bin = ParseHex(signet_challenge[0]);
-
- consensus.nMinimumChainWork = uint256{};
- consensus.defaultAssumeValid = uint256{};
- m_assumed_blockchain_size = 0;
- m_assumed_chain_state_size = 0;
- chainTxData = ChainTxData{
- 0,
- 0,
- 0,
- };
LogPrintf("Signet with challenge %s\n", signet_challenge[0]);
}
+ consensus.nMinimumChainWork = uint256{};
+ consensus.defaultAssumeValid = uint256{};
+ m_assumed_blockchain_size = 0;
+ m_assumed_chain_state_size = 0;
+ chainTxData = ChainTxData{
+ 0,
+ 0,
+ 0,
+ };
+
if (args.IsArgSet("-signetseednode")) {
vSeeds = args.GetArgs("-signetseednode");
}
@@ -389,17 +355,7 @@ public:
nPruneAfterHeight = 1000;
genesis = CreateGenesisBlock(1622364566, 81621, 0x1f00f77a, 1, 50 * COIN);
- genesis.nBits = UintToArith256(consensus.powLimit).GetCompact();
- printf("Bits: %x\n", genesis.nBits);
- while (!CheckProofOfWorkSimplified(genesis.GetPoWHash(), genesis.nBits)) {
- genesis.nNonce++;
- if (genesis.nNonce % 100000 == 0) {
- printf("Interim nonce: %d\n", genesis.nNonce);
- }
- }
- printf("Nonce: %d\n", genesis.nNonce);
consensus.hashGenesisBlock = genesis.GetHash();
- printf("Hash: %s\n", consensus.hashGenesisBlock.ToString().c_str());
assert(consensus.hashGenesisBlock == uint256S("0xf21a2c00a3b58b3f1b245de5e30955c00784040a3e7042edb0d2eedd1fd085a5"));
assert(genesis.hashMerkleRoot == uint256S("0xb60e6a649c2c43248d6d8da2fb19daa337511fabfe3875f382adb686474fc021"));
diff --git a/src/init.cpp b/src/init.cpp
index 488e6237e..36b82c243 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -973,6 +973,10 @@ bool AppInitParameterInteraction(const ArgsManager& args)
// on the command line or in this network's section of the config file.
std::string network = args.GetChainName();
if (network == CBaseChainParams::SIGNET) {
+ // Dogecoin: Signet requires a challenge, but we can't halt when constructing the chainparams as they're constructed even if not used.
+ if (!args.IsArgSet("-signetchallenge")) {
+ return InitError(_("-signetchallenge must be specified when using -signet on Dogecoin as no default Signet is available."));
+ }
LogPrintf("Signet derived magic (message start): %s\n", HexStr(chainparams.MessageStart()));
}
bilingual_str errors;