From 7dc1dcf9276c77f164ca59d6322d3fc23366fccf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20Tim=C3=B3n?= Date: Wed, 22 Jul 2015 16:34:09 +0200 Subject: [PATCH] Elements: Introduce "elements_test" testchain --- src/chainparams.cpp | 50 +++++++++++++++++++++++++++++++++++++++++ src/chainparamsbase.cpp | 15 ++++++++----- src/chainparamsbase.h | 1 + 3 files changed, 60 insertions(+), 6 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 9923c28302..2d4e012e99 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -22,6 +22,7 @@ const std::map CChainParams::supportedChains = ( "main", uint256S("0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f")) ( "test", uint256S("0x000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943")) ( "regtest", uint256S("0x0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206")) + ( "elements_test", uint256S("0xcf97109d25b15952b636e3d98b6fc15e15665e1ba88dd83165b646e05e19da9a")) ; static CBlock CreateGenesisBlock(const char* pszTimestamp, CScript genesisOutputScript, uint32_t nTime=1231006505, uint32_t nNonce=2083236893, uint32_t nBits=0x1d00ffff, int32_t nVersion=1, const CAmount& genesisReward=50 * COIN) @@ -264,6 +265,53 @@ public: } }; +/** + * Sidechain Elements Testnet + */ +class CElementsTestParams : public CChainParams { +public: + CElementsTestParams() { + strNetworkID = "elements_test"; + consensus.nSubsidyHalvingInterval = 210000; + consensus.nMajorityEnforceBlockUpgrade = 750; + consensus.nMajorityRejectBlockOutdated = 950; + consensus.nMajorityWindow = 1000; + consensus.powLimit = uint256S("00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); + consensus.nPowTargetTimespan = 14 * 24 * 60 * 60; // two weeks + consensus.nPowTargetSpacing = 10 * 60; + consensus.fPowAllowMinDifficultyBlocks = false; + + CScript scriptDestination(CScript() << OP_TRUE); + genesis = CreateGenesisBlock(strNetworkID.c_str(), scriptDestination, 1296688602, 0, 0x2007ffff); + consensus.hashGenesisBlock = genesis.GetHash(); + // assert(consensus.hashGenesisBlock == supportedChains.find(strNetworkID)->second); + + nDefaultPort = 28333; + nPruneAfterHeight = 100000; + fRequireRPCPassword = false; + fMiningRequiresPeers = false; + fDefaultConsistencyChecks = true; + fRequireStandard = false; + fMineBlocksOnDemand = false; + fTestnetToBeDeprecatedFieldRPC = false; + + pchMessageStart[0] = 0xe0; + pchMessageStart[1] = 0x35; + pchMessageStart[2] = 0x8e; + pchMessageStart[3] = 0xfb; + vFixedSeeds.clear(); + vSeeds.clear(); + checkpointData = (Checkpoints::CCheckpointData){ + boost::assign::map_list_of + ( 0, consensus.hashGenesisBlock), + 0, + 0, + 0 + }; + AssignBase58PrefixStyle(base58Prefixes, TEST_BASE58); + } +}; + Container cGlobalChainParams; static Container cGlobalSwitchingChainParams; @@ -279,6 +327,8 @@ CChainParams* CChainParams::Factory(const std::string& chain) return new CTestNetParams(); else if (chain == CBaseChainParams::REGTEST) return new CRegTestParams(); + else if (chain == CBaseChainParams::ELEM_TEST) + return new CElementsTestParams(); else throw std::runtime_error(strprintf(_("%s: Unknown chain %s."), __func__, chain)); } diff --git a/src/chainparamsbase.cpp b/src/chainparamsbase.cpp index 5da63b8830..3b3f969711 100644 --- a/src/chainparamsbase.cpp +++ b/src/chainparamsbase.cpp @@ -11,6 +11,7 @@ const std::string CBaseChainParams::MAIN = "main"; const std::string CBaseChainParams::TESTNET = "test"; const std::string CBaseChainParams::REGTEST = "regtest"; +const std::string CBaseChainParams::ELEM_TEST = "elements_test"; void AppendParamsHelpMessages(std::string& strUsage, bool debugHelp) { @@ -62,18 +63,18 @@ public: } }; -/* - * Unit test +/** + * Sidechain Elements Testnet */ -class CBaseUnitTestParams : public CBaseMainParams +class CBaseElementsTestParams : public CBaseMainParams { public: - CBaseUnitTestParams() + CBaseElementsTestParams() { - strDataDir = "unittest"; + nRPCPort = 28332; + strDataDir = "elements_test"; } }; -static CBaseUnitTestParams unitTestParams; Container cGlobalChainBaseParams; @@ -90,6 +91,8 @@ CBaseChainParams* CBaseChainParams::Factory(const std::string& chain) return new CBaseTestNetParams(); else if (chain == CBaseChainParams::REGTEST) return new CBaseRegTestParams(); + else if (chain == CBaseChainParams::ELEM_TEST) + return new CBaseElementsTestParams(); else throw std::runtime_error(strprintf(_("%s: Unknown chain %s."), __func__, chain)); } diff --git a/src/chainparamsbase.h b/src/chainparamsbase.h index 23ae1dd436..1e8afa885a 100644 --- a/src/chainparamsbase.h +++ b/src/chainparamsbase.h @@ -21,6 +21,7 @@ public: static const std::string MAIN; static const std::string TESTNET; static const std::string REGTEST; + static const std::string ELEM_TEST; const std::string& DataDir() const { return strDataDir; } int RPCPort() const { return nRPCPort; }