From 1456e4543d28b6aaa401846e707df4ccbcb3c70c Mon Sep 17 00:00:00 2001 From: Gregory Sanders Date: Thu, 1 Dec 2016 09:38:02 -0500 Subject: [PATCH] Give genesis block BITCOINID asset type --- src/chainparams.cpp | 14 ++++++++++---- src/chainparams.h | 1 + 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 1c31aeafef..d288034e50 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -30,7 +30,7 @@ static CScript StrHexToScriptWithDefault(std::string strScript, const CScript de return returnScript; } -static CBlock CreateGenesisBlock(const char* pszTimestamp, const CScript& genesisOutputScript, uint32_t nTime, const CScript& scriptChallenge, int32_t nVersion, const CAmount& genesisReward, const uint32_t rewardShards) +static CBlock CreateGenesisBlock(const char* pszTimestamp, const CScript& genesisOutputScript, uint32_t nTime, const CScript& scriptChallenge, int32_t nVersion, const CAmount& genesisReward, const uint32_t rewardShards, const uint256& assetID) { // Shards must be evenly divisible assert(MAX_MONEY % rewardShards == 0); @@ -41,6 +41,7 @@ static CBlock CreateGenesisBlock(const char* pszTimestamp, const CScript& genesi txNew.vout.resize(rewardShards); for (unsigned int i = 0; i < rewardShards; i++) { txNew.vout[i].nValue = genesisReward/rewardShards; + txNew.vout[i].nAsset = assetID; txNew.vout[i].scriptPubKey = genesisOutputScript; } @@ -122,13 +123,15 @@ public: nDefaultPort = 9042; nPruneAfterHeight = 100000; + // SHA256 of Bitcoin genesis mainnet hash for NUMS bitcoin asset id + bitcoinID = BITCOINID; + parentGenesisBlockHash = uint256S("000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943"); CScript scriptDestination(CScript() << std::vector(parentGenesisBlockHash.begin(), parentGenesisBlockHash.end()) << OP_WITHDRAWPROOFVERIFY); - genesis = CreateGenesisBlock(strNetworkID.c_str(), scriptDestination, 1231006505, genesisChallengeScript, 1, MAX_MONEY, 100); + genesis = CreateGenesisBlock(strNetworkID.c_str(), scriptDestination, 1231006505, genesisChallengeScript, 1, MAX_MONEY, 100, bitcoinID); consensus.hashGenesisBlock = genesis.GetHash(); scriptCoinbaseDestination = CScript() << ParseHex("0229536c4c83789f59c30b93eb40d4abbd99b8dcc99ba8bd748f29e33c1d279e3c") << OP_CHECKSIG; - vFixedSeeds.clear(); //! TODO vSeeds.clear(); //! TODO @@ -227,7 +230,10 @@ public: nDefaultPort = 7042; nPruneAfterHeight = 1000; - genesis = CreateGenesisBlock(strNetworkID.c_str(), defaultRegtestScript, 1296688602, genesisChallengeScript, 1, MAX_MONEY, 100); + // SHA256 of Bitcoin genesis mainnet hash for NUMS bitcoin asset id + bitcoinID = BITCOINID; + + genesis = CreateGenesisBlock(strNetworkID.c_str(), defaultRegtestScript, 1296688602, genesisChallengeScript, 1, MAX_MONEY, 100, bitcoinID); consensus.hashGenesisBlock = genesis.GetHash(); parentGenesisBlockHash = uint256S("0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206"); diff --git a/src/chainparams.h b/src/chainparams.h index db174bb00f..e550e42f72 100644 --- a/src/chainparams.h +++ b/src/chainparams.h @@ -107,6 +107,7 @@ protected: std::string strNetworkID; CBlock genesis; uint256 parentGenesisBlockHash; + uint256 bitcoinID; std::vector vFixedSeeds; bool fMiningRequiresPeers; bool fDefaultConsistencyChecks;