Claim name returned is strange #172

Closed
mirgee wants to merge 286 commits from issue-119 into master
6 changed files with 395 additions and 362 deletions
Showing only changes of commit 55207d9767 - Show all commits

View file

@ -15,8 +15,28 @@
#include <stdio.h> #include <stdio.h>
#include "chainparamsseeds.h" #include "chainparamsseeds.h"
#include "arith_uint256.h"
static CBlock CreateGenesisBlock(const char* pszTimestamp, const CScript& genesisOutputScript, uint32_t nTime, uint32_t nNonce, uint32_t nBits, int32_t nVersion, const CAmount& genesisReward) bool CheckProofOfWork2(uint256 hash, unsigned int nBits, const Consensus::Params& params)
{
bool fNegative;
bool fOverflow;
arith_uint256 bnTarget;
bnTarget.SetCompact(nBits, &fNegative, &fOverflow);
// Check range
if (fNegative || bnTarget == 0 || fOverflow || bnTarget > UintToArith256(params.powLimit))
return error("CheckProofOfWork(): nBits below minimum work");
// Check proof of work matches claimed amount
if (UintToArith256(hash) > bnTarget)
return error("CheckProofOfWork(): hash doesn't match nBits");
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, const Consensus::Params& consensus)
{ {
CMutableTransaction txNew; CMutableTransaction txNew;
txNew.nVersion = 1; txNew.nVersion = 1;
@ -43,11 +63,10 @@ static CBlock CreateGenesisBlock(const char* pszTimestamp, const CScript& genesi
while (!found) while (!found)
{ {
genesis.nNonce += 1; genesis.nNonce += 1;
consensus.hashGenesisBlock = genesis.GetHash(); if (CheckProofOfWork2(genesis.GetHash(), nBits, consensus))
if (CheckProofOfWork2(consensus.hashGenesisBlock, consensus.powLimit.GetCompact(), consensus))
{ {
std::cout << "nonce: " << genesis.nNonce << std::endl; std::cout << "nonce: " << genesis.nNonce << std::endl;
std::cout << "hex: " << consensus.hashGenesisBlock.GetHex() << std::endl; std::cout << "hex: " << genesis.GetHash().GetHex() << std::endl;
found = true; found = true;
} }
}*/ }*/
@ -65,11 +84,11 @@ static CBlock CreateGenesisBlock(const char* pszTimestamp, const CScript& genesi
* CTxOut(nValue=50.00000000, scriptPubKey=0x5F1DF16B2B704C8A578D0B) * CTxOut(nValue=50.00000000, scriptPubKey=0x5F1DF16B2B704C8A578D0B)
* vMerkleTree: 4a5e1e * vMerkleTree: 4a5e1e
*/ */
static CBlock CreateGenesisBlock(uint32_t nTime, uint32_t nNonce, uint32_t nBits, int32_t nVersion, const CAmount& genesisReward) static CBlock CreateGenesisBlock(uint32_t nTime, uint32_t nNonce, uint32_t nBits, int32_t nVersion, const CAmount& genesisReward, const Consensus::Params& consensus)
{ {
const char* pszTimestamp = "insert timestamp string";//"The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"; const char* pszTimestamp = "insert timestamp string";//"The Times 03/Jan/2009 Chancellor on brink of second bailout for banks";
const CScript genesisOutputScript = CScript() << OP_DUP << OP_HASH160 << ParseHex("345991dbf57bfb014b87006acdfafbfc5fe8292f") << OP_EQUALVERIFY << OP_CHECKSIG; const CScript genesisOutputScript = CScript() << OP_DUP << OP_HASH160 << ParseHex("345991dbf57bfb014b87006acdfafbfc5fe8292f") << OP_EQUALVERIFY << OP_CHECKSIG;
return CreateGenesisBlock(pszTimestamp, genesisOutputScript, nTime, nNonce, nBits, nVersion, genesisReward); return CreateGenesisBlock(pszTimestamp, genesisOutputScript, nTime, nNonce, nBits, nVersion, genesisReward, consensus);
} }
/** /**
@ -87,7 +106,7 @@ class CMainParams : public CChainParams {
public: public:
CMainParams() { CMainParams() {
strNetworkID = "lbrycrd"; strNetworkID = "lbrycrd";
consensus.nSubsidyHalvingInterval = 2100000; consensus.nSubsidyLevelInterval = 1<<5;
consensus.nMajorityEnforceBlockUpgrade = 750; consensus.nMajorityEnforceBlockUpgrade = 750;
consensus.nMajorityRejectBlockOutdated = 950; consensus.nMajorityRejectBlockOutdated = 950;
consensus.nMajorityWindow = 1000; consensus.nMajorityWindow = 1000;
@ -110,16 +129,16 @@ public:
nMaxTipAge = 24 * 60 * 60; nMaxTipAge = 24 * 60 * 60;
nPruneAfterHeight = 100000; nPruneAfterHeight = 100000;
genesis = CreateGenesisBlock(1417453734, 7885, 0x1f00ffff, 1, 50 * COIN); genesis = CreateGenesisBlock(1446058291, 71748, 0x1f00ffff, 1, 400000000 * COIN, consensus);
consensus.hashGenesisBlock = genesis.GetHash(); consensus.hashGenesisBlock = genesis.GetHash();
//printf("hex: %s\n", consensus.hashGenesisBlock.GetHex().c_str()); //std::cout << "hex: " << consensus.hashGenesisBlock.GetHex() << std::endl;
//assert(consensus.hashGenesisBlock == uint256S("0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f")); //assert(consensus.hashGenesisBlock == uint256S("0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f"));
//assert(consensus.hashGenesisBlock == uint256S("0x00ef6ded2b610fc5e4f06d187d12136bd5fba7b932fa0b66bf353c7c1648ec9c")); //assert(consensus.hashGenesisBlock == uint256S("0x00ef6ded2b610fc5e4f06d187d12136bd5fba7b932fa0b66bf353c7c1648ec9c"));
assert(consensus.hashGenesisBlock == uint256S("0x0000343f59c49eb433ba3a37ee4b3493ff014ee9b266f610bb3cd1b36927787a")); assert(consensus.hashGenesisBlock == uint256S("0x0000678ddce6b9b57e58fab6b89a1cf63519ffb4bc097debb1836577ead9a3be"));
//printf("%s\n", genesis.hashMerkleRoot.GetHex().c_str()); //std::cout << "merkle root: " << genesis.hashMerkleRoot.GetHex() << std::endl;
//assert(genesis.hashMerkleRoot == uint256("0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b")); //assert(genesis.hashMerkleRoot == uint256("0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"));
//assert(genesis.hashMerkleRoot == uint256S("0xa7d51d407092059a2beeffab22e65d6176cfb3c33b93515109480aa7c81c9141")); //assert(genesis.hashMerkleRoot == uint256S("0xa7d51d407092059a2beeffab22e65d6176cfb3c33b93515109480aa7c81c9141"));
assert(genesis.hashMerkleRoot == uint256S("0x93621531f4de4b27d4ffdf785ef12855f2b18687e2141466ff50e2848d83f551")); assert(genesis.hashMerkleRoot == uint256S("0xb8211c82c3d15bcd78bba57005b86fed515149a53a425eb592c07af99fe559cc"));
vSeeds.clear(); vSeeds.clear();
vFixedSeeds.clear(); vFixedSeeds.clear();
@ -159,7 +178,7 @@ public:
strNetworkID = "test"; strNetworkID = "test";
consensus.nSubsidyHalvingInterval = 2100000; consensus.nSubsidyLevelInterval = 1 << 5;
consensus.nMajorityEnforceBlockUpgrade = 750; consensus.nMajorityEnforceBlockUpgrade = 750;
consensus.nMajorityRejectBlockOutdated = 950; consensus.nMajorityRejectBlockOutdated = 950;
consensus.nMajorityWindow = 1000; consensus.nMajorityWindow = 1000;
@ -177,12 +196,12 @@ public:
nMaxTipAge = 0x7fffffff; nMaxTipAge = 0x7fffffff;
nPruneAfterHeight = 1000; nPruneAfterHeight = 1000;
genesis = CreateGenesisBlock(1417453734, 7885, 0x1f00ffff, 1, 50 * COIN); genesis = CreateGenesisBlock(1446058291, 71748, 0x1f00ffff, 1, 400000000 * COIN, consensus);
consensus.hashGenesisBlock = genesis.GetHash(); consensus.hashGenesisBlock = genesis.GetHash();
//std::cout << "testnet genesis hash: " << genesis.GetHash().GetHex() << std::endl; //std::cout << "testnet genesis hash: " << genesis.GetHash().GetHex() << std::endl;
//std::cout << "testnet merkle hash: " << genesis.hashMerkleRoot.GetHex() << std::endl; //std::cout << "testnet merkle hash: " << genesis.hashMerkleRoot.GetHex() << std::endl;
assert(consensus.hashGenesisBlock == uint256S("0x0000343f59c49eb433ba3a37ee4b3493ff014ee9b266f610bb3cd1b36927787a")); assert(consensus.hashGenesisBlock == uint256S("0x0000678ddce6b9b57e58fab6b89a1cf63519ffb4bc097debb1836577ead9a3be"));
assert(genesis.hashMerkleRoot == uint256S("0x93621531f4de4b27d4ffdf785ef12855f2b18687e2141466ff50e2848d83f551")); assert(genesis.hashMerkleRoot == uint256S("0xb8211c82c3d15bcd78bba57005b86fed515149a53a425eb592c07af99fe559cc"));
vFixedSeeds.clear(); vFixedSeeds.clear();
vSeeds.clear(); vSeeds.clear();
@ -224,7 +243,7 @@ class CRegTestParams : public CChainParams {
public: public:
CRegTestParams() { CRegTestParams() {
strNetworkID = "regtest"; strNetworkID = "regtest";
consensus.nSubsidyHalvingInterval = 150; consensus.nSubsidyLevelInterval = 1 << 0;
consensus.nMajorityEnforceBlockUpgrade = 750; consensus.nMajorityEnforceBlockUpgrade = 750;
consensus.nMajorityRejectBlockOutdated = 950; consensus.nMajorityRejectBlockOutdated = 950;
consensus.nMajorityWindow = 1000; consensus.nMajorityWindow = 1000;
@ -242,12 +261,12 @@ public:
nDefaultPort = 29246; nDefaultPort = 29246;
nPruneAfterHeight = 1000; nPruneAfterHeight = 1000;
genesis = CreateGenesisBlock(1417453734, 0, 0x207fffff, 1, 50 * COIN); genesis = CreateGenesisBlock(1446058291, 1, 0x207fffff, 1, 400000000 * COIN, consensus);
consensus.hashGenesisBlock = genesis.GetHash(); consensus.hashGenesisBlock = genesis.GetHash();
//std::cout << "regtest genensis hash: " << genesis.GetHash().GetHex() << std::endl; //std::cout << "regtest genensis hash: " << genesis.GetHash().GetHex() << std::endl;
//std::cout << "regtest hashmerkleroot: " << genesis.hashMerkleRoot.GetHex() << std::endl; //std::cout << "regtest hashmerkleroot: " << genesis.hashMerkleRoot.GetHex() << std::endl;
assert(consensus.hashGenesisBlock == uint256S("0x080fcf370abe5a9d14698260e9a20313d35b0fa7ecbc3b0b5ea733f25c359a0b")); assert(consensus.hashGenesisBlock == uint256S("0x6e3fcf1299d4ec5d79c3a4c91d624a4acf9e2e173d95a1a0504f677669687556"));
assert(genesis.hashMerkleRoot == uint256S("0x93621531f4de4b27d4ffdf785ef12855f2b18687e2141466ff50e2848d83f551")); assert(genesis.hashMerkleRoot == uint256S("0xb8211c82c3d15bcd78bba57005b86fed515149a53a425eb592c07af99fe559cc"));
vFixedSeeds.clear(); //! Regtest mode doesn't have any fixed seeds. vFixedSeeds.clear(); //! Regtest mode doesn't have any fixed seeds.
vSeeds.clear(); //! Regtest mode doesn't have any DNS seeds. vSeeds.clear(); //! Regtest mode doesn't have any DNS seeds.

View file

@ -14,7 +14,7 @@ namespace Consensus {
*/ */
struct Params { struct Params {
uint256 hashGenesisBlock; uint256 hashGenesisBlock;
int nSubsidyHalvingInterval; int nSubsidyLevelInterval;
/** Used to check majorities for block version upgrade */ /** Used to check majorities for block version upgrade */
int nMajorityEnforceBlockUpgrade; int nMajorityEnforceBlockUpgrade;
int nMajorityRejectBlockOutdated; int nMajorityRejectBlockOutdated;

View file

@ -1090,17 +1090,40 @@ bool ReadBlockFromDisk(CBlock& block, const CBlockIndex* pindex)
return true; return true;
} }
bool withinLevelBounds(int nReduction, int nLevel)
{
if (((nReduction * nReduction + nReduction) >> 1) > nLevel)
return false;
nReduction += 1;
if (((nReduction * nReduction + nReduction) >> 1) <= nLevel)
return false;
return true;
}
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams) CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)
{ {
int halvings = nHeight / consensusParams.nSubsidyHalvingInterval; if (nHeight == 0)
// Force block reward to zero when right shift is undefined. {
if (halvings >= 64) return 400000000 * COIN;
}
CAmount nStartingSubsidy = 500 * COIN;
int nLevel = (nHeight - 1) / consensusParams.nSubsidyLevelInterval;
int nReduction = ((-1 + (int)sqrt((8 * nLevel) + 1)) / 2);
while (!(withinLevelBounds(nReduction, nLevel)))
{
if (((nReduction * nReduction + nReduction) >> 1) > nLevel)
{
nReduction--;
}
else
{
nReduction++;
}
}
CAmount nSubsidyReduction = nReduction * COIN;
if (nSubsidyReduction >= nStartingSubsidy)
return 0; return 0;
return nStartingSubsidy - nSubsidyReduction;
CAmount nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years.
nSubsidy >>= halvings;
return nSubsidy;
} }
bool IsInitialBlockDownload() bool IsInitialBlockDownload()

View file

@ -21,305 +21,305 @@ using namespace std;
CScript scriptPubKey = CScript() << OP_TRUE; CScript scriptPubKey = CScript() << OP_TRUE;
const unsigned int insert_nonces[] = { const unsigned int insert_nonces[] = {
62302, 78404, 42509, 88397, 232147, 34120, 48944, 8449, 3855, 99418, 155628, 39910, 106604, 73592, 56826, 136756, 169244, 65570, 121703, 50365,
35007, 36992, 18865, 48021, 117592, 61911, 26614, 26267, 171911, 49917, 47566, 8341, 87403, 4885, 7499, 23858, 84894, 6343, 53404, 73474,
68274, 19360, 48650, 22711, 102612, 73362, 7375, 39379, 413, 123283, 7981, 3801, 8293, 75679, 50803, 18724, 22750, 9501, 100343, 116694,
51264, 50359, 11329, 126833, 56973, 48128, 183377, 122530, 68435, 16223, 147940, 100560, 53917, 47565, 198059, 7745, 4287, 3061, 15517, 142493,
201782, 6345, 169401, 49980, 340128, 21022, 54403, 2304, 57721, 257910, 19861, 87677, 316724, 45217, 2293, 74794, 201797, 25724, 17530, 59158,
31720, 13689, 73758, 43961, 14926, 90259, 23943, 75907, 70683, 91654, 7358, 8950, 50471, 80568, 46991, 37572, 109787, 154450, 29521, 30740,
2788, 110836, 21685, 78041, 3310, 39497, 1774, 51369, 59835, 41272, 74421, 37943, 174336, 63708, 120176, 51829, 181907, 46865, 28557, 92469,
41575, 63281, 25029, 87528, 285, 34225, 48228, 5152, 22230, 83385, 45992, 28559, 10112, 20048, 24572, 14288, 84634, 131257, 111431, 278957,
11314, 192174, 75562, 116667, 385684, 56288, 23660, 18636, 228282, 114723, 137715, 30203, 15110, 89827, 34064, 73864, 86459, 271510, 49225, 7031,
623, 251464, 15557, 88445, 141000, 111823, 3972, 25959, 26559, 137659, 166341, 228178, 112403, 110441, 33255, 46489, 180159, 115220, 148176, 38211,
47864, 70562, 102076, 29568, 7219, 6132, 207855, 27429, 38443, 37445, 29321, 56734, 60510, 85339, 42224, 57060, 84419, 107869, 239088, 5008,
64206, 135854, 93674, 103500, 67021, 58095, 118236, 91253, 64567, 19366, 106925, 22907, 145355, 62131, 40031, 8895, 43388, 56524, 40267, 1436,
70102, 666, 80009, 9994, 39820, 3524, 2212, 85667, 47668, 25021, 158156, 175503, 11981, 59408, 86034, 95875, 39047, 138584, 260506, 166962,
182192, 29285, 3769, 86857, 126797, 49162, 16952, 50760, 120889, 3173, 82236, 171086, 104457, 12813, 13190, 11599, 29210, 19090, 90114, 25909,
2962, 2436, 58781, 104999, 14241, 61552, 90007, 22316, 95414, 104797, 173926, 112336, 41450, 22040, 81443, 122350, 29060, 5852, 86271, 50407,
24690, 31606, 14425, 12265, 7724, 40322, 50948, 84037, 90870, 90439, 246135, 69572, 15253, 71269, 82487, 21428, 14461, 250107, 53041, 17675,
79317, 19064, 25852, 67993, 132666, 93574, 11211, 204244, 3274, 108448, 1011, 26166, 14408, 19045, 53044, 30151, 125263, 229230, 31201, 122585,
61865, 21722, 15966, 19349, 5051, 37715, 12500, 2933, 55290, 8778, 37139, 71645, 47182, 41257, 53809, 16935, 33238, 27617, 112009, 139103,
64996, 22325, 18638, 132615, 77471, 59497, 64174, 10540, 34782, 12876, 36123, 22674, 45647, 34445, 132598, 177969, 35623, 46029, 14768, 6247,
36011, 19461, 122409, 41333, 346439, 12835, 161, 29867, 5664, 24276, 28649, 123582, 27044, 128625, 28705, 6060, 51578, 51109, 21778, 8319,
110629, 41705, 82403, 117918, 2686, 22781, 74781, 8059, 13574, 80700, 3730, 81045, 13998, 9544, 120347, 22020, 29347, 27976, 5600, 10136,
259435, 94645, 2441, 79068, 87422, 7437, 1197, 4969, 51038, 17387, 1287, 8977, 56238, 47661, 79276, 19913, 145875, 232196, 5481, 44000,
132591, 106293, 164375, 100688, 20687, 44270, 32408, 33912, 41316, 27930, 114843, 73267, 69339, 40976, 45828, 20190, 42290, 17866, 17247, 75381,
18173, 60038, 113697, 127820, 39899, 44525, 55585, 31759, 58538, 3297, 99422, 22061, 24503, 32540, 59735, 12123, 32011, 30995, 8385, 57895,
437, 27842, 167299, 119639, 32566, 121136, 7388, 71680, 45357, 195629, 14589, 149735, 87639, 36483, 84561, 120576, 8283, 39601, 13194, 64956,
127616, 55406, 78161, 76184, 333, 72817, 1730, 114948, 10746, 148968, 34522, 36648, 44189, 2989, 11155, 22891, 29259, 95187, 229848, 33360,
182375, 37126, 105817, 48017, 36250, 44934, 24850, 95678, 104566, 95614, 258769, 117889, 279100, 66763, 6343, 9712, 23942, 49704, 30169, 8089,
28324, 76120, 5795, 179419, 69318, 152410, 108472, 21062, 215696, 27140, 17775, 2762, 172995, 96724, 17639, 4000, 3530, 80612, 11895, 31376,
52488, 135070, 23647, 47157, 113538, 13583, 78351, 12363, 18558, 127062, 36561, 16686, 25661, 23295, 14710, 23141, 38004, 10971, 130895, 10516,
43971, 515, 84045, 87171, 79124, 146078, 9189, 4323, 9875, 343500, 233133, 106077, 11471, 48069, 21759, 39622, 84834, 5749, 61441, 13117,
99225, 28037, 11630, 28675, 90970, 6716, 27681, 12145, 104170, 67804, 192583, 232320, 4130, 24245, 11509, 187805, 44072, 78606, 8422, 89015,
112975, 83973, 194635, 20363, 1392, 16861, 64895, 41499, 3914, 94319, 1565, 52957, 2897, 7905, 25244, 104568, 31452, 34, 38198, 1828,
73582, 13873, 56605, 32687, 16570, 104036, 7131, 48046, 192954, 132191, 23704, 12388, 20386, 1604, 3651, 9238, 163574, 5187, 207492, 35848,
17337, 36860, 32876, 4682, 20878, 155049, 545, 2662, 92339, 36864, 21468, 12953, 5981, 66143, 105063, 52380, 53867, 47645, 92922, 128609,
6169, 442438, 57917, 230552, 18608, 470961, 13556, 99731, 103752, 89833, 11717, 38047, 186705, 30412, 34637, 56797, 69810, 24538, 119653, 105672,
65375, 108902, 12204, 116092, 11987, 14974, 16281, 19849, 9684, 19262, 17211, 18454, 58143, 2715, 4688, 1698, 84285, 69246, 12861, 85065,
60274, 3922, 4561, 50643, 70270, 26895, 68064, 41757, 61724, 53073, 181565, 2510, 35027, 234, 106934, 43419, 54492, 72089, 182699, 19743,
3175, 5290, 75838, 79923, 20281, 38820, 12629, 9813, 23148, 74146, 34980, 42495, 113416, 211393, 12606, 44988, 93710, 2876, 22550, 152811,
110888, 61261, 142701, 86139, 132205, 20238, 45403, 16518, 31533, 18313, 5125, 7158, 127842, 298833, 2670, 140245, 210675, 20872, 142251, 71425,
23873, 8693, 50244, 135146, 144813, 7323, 38316, 9083, 27235, 211421, 96659, 17887, 5082, 2800, 3509, 174381, 21604, 73958, 56196, 47591,
97467, 212336, 5376, 61095, 120776, 24573, 8260, 230917, 86233, 16242, 35776, 255243, 18728, 44421, 29303, 138275, 34105, 61382, 10611, 7586,
91065, 123686, 4773, 74425, 60920, 88288, 67248, 8801, 30884, 30203, 131626, 21686, 53482, 130203, 105082, 50745, 28756, 131461, 58455, 109440,
8688, 85095, 18908, 106600, 90656, 61144, 36166, 137897, 72744, 42217, 31388, 41615, 119446, 56954, 3655, 188918, 90664, 38566, 56183, 17193,
72626, 146860, 2951, 173219, 6303, 116133, 1916, 80782, 15029, 67245, 17745, 28499, 33856, 19059, 5304, 10160, 29761, 27596, 193129, 213470,
31028, 104551, 14783, 83962, 73425, 45736, 38192, 5284, 12346, 18773, 19958, 4091, 18845, 82775, 16441, 38658, 116790, 16883, 1143, 50916,
74892, 38445, 75585, 5918, 18999, 41399, 64447, 139444, 2527, 93440, 81243, 119477, 45790, 90353, 185041, 1142, 96268, 40823, 62168, 98313,
53288, 31806, 34110, 40471, 40983, 35527, 1230, 115613, 94375, 25932, 2024, 45306, 91978, 53545, 37740, 23032, 70197, 64118, 38759, 158668,
47094, 31209, 13013, 51423, 76326, 82904, 29303, 11973, 60207, 21922, 8190, 116048, 29418, 24210, 28832, 12056, 132, 3482, 36506, 45750,
10099, 39484, 25276, 90711, 27471, 42073, 13007, 44022, 80585, 80630, 50130, 73613, 41695, 124902, 31360, 112543, 35580, 50150, 164449, 8352,
22096, 3515, 10527, 101717, 132546, 44391, 46593, 841, 262331, 5922, 53090, 85848, 59162, 23371, 11110, 37529, 13346, 8135, 119414, 54797,
2404, 25644, 195305, 20699, 144171, 42511, 55261, 61342, 2457, 58694, 106935, 43638, 64324, 13900, 45857, 8340, 127701, 161, 254585, 62561,
282954, 62834, 30707, 18560, 33639, 63196, 275047, 81401, 19986, 113428, 203865, 12614, 87727, 59047, 95555, 140724, 32987, 41114, 89070, 116326,
29405, 57197, 17269, 9409, 73793, 45070, 140346, 71080, 84621, 12136, 12410, 7955, 31305, 304152, 34579, 125789, 69845, 55911, 141878, 275139,
39231, 13978, 1513, 48179, 18624, 14175, 14533, 104261, 59562, 61698, 48268, 18010, 20297, 68408, 41114, 9743, 37287, 52599, 5675, 26326,
41790, 16402, 39768, 18407, 13544, 394, 210609, 168382, 32641, 14521, 32383, 128519, 34931, 81744, 53577, 69236, 3296, 48392, 203454, 353270,
16777, 180974, 46559, 40745, 11246, 3340, 5717, 53973, 61629, 97237, 1748, 174489, 154338, 85466, 30186, 16535, 59168, 18810, 21989, 12224,
22712, 691, 55, 66071, 10969, 57775, 3169, 8226, 35500, 19929, 40152, 174098, 36995, 66223, 109443, 157442, 67261, 14838, 48993, 25040,
30040, 99052, 33071, 57245, 25403, 6895, 28362, 44132, 122062, 99461, 79720, 84327, 14035, 44574, 41645, 124910, 22908, 18183, 54504, 182765,
9933, 49373, 32076, 27231, 88766, 62646, 1034, 107621, 15337, 217266, 23742, 33880, 22703, 8031, 55620, 32635, 41290, 19474, 147217, 4570,
13015, 69866, 30969, 4047, 102839, 19328, 31593, 69543, 73805, 87999, 80189, 57588, 7616, 44349, 123799, 69788, 39005, 6400, 3572, 52337,
66440, 52514, 32789, 29271, 24563, 3880, 72436, 196210, 52393, 112434, 25640, 42665, 136764, 120479, 61732, 46758, 71057, 61624, 93760, 11492,
194415, 67700, 191419, 44634, 92402, 4904, 31125, 6806, 25877, 152964, 92897, 1256, 38405, 97964, 2231, 121314, 20513, 24942, 297207, 64968,
63322, 45156, 5487, 212201, 57173, 13030, 4566, 246817, 23718, 120594, 113001, 287375, 12885, 47233, 25274, 52813, 25374, 13974, 67921, 12246,
28808, 57914, 67186, 8294, 142255, 26350, 94732, 1635, 2272, 113460, 27505, 32199, 23722, 56136, 189997, 151112, 3724, 43260, 44645, 63521,
126065, 32864, 69844, 137209, 12286, 45293, 46530, 3738, 9976, 11934, 98899, 119701, 4026, 5510, 4429, 94472, 48507, 132321, 108938, 35559,
21574, 674, 8540, 63574, 68149, 40583, 148497, 125165, 6685, 8401, 103745, 21434, 27144, 143420, 26, 83687, 202909, 180852, 229502, 20467,
154662, 37101, 39016, 32108, 11193, 167425, 41041, 18322, 52212, 51840, 21809, 44979, 49762, 3778, 38885, 89006, 53420, 99161, 132586, 89432,
42878, 91589, 61917, 124810, 27102, 2216, 21835, 126406, 39437, 17288, 73607, 7511, 155005, 846, 94850, 43265, 35800, 31158, 162444, 14723,
34800, 111796, 707, 36455, 153492, 159933, 12398, 67544, 37082, 30098, 81095, 39759, 92670, 4657, 24287, 5991, 28214, 94651, 29775, 90674,
229205, 47964, 5544, 3483, 85833, 98896, 114927, 4548, 5466, 339131, 66136, 171240, 21895, 173292, 16939, 202489, 218017, 73248, 20347, 24093,
53091, 12742, 120717, 16555, 66390, 60497, 146946, 179155, 101302, 25237, 189969, 104325, 9922, 49510, 5836, 4269, 138765, 51384, 37566, 7592,
7373, 29939, 192727, 139469, 100098, 7412, 10109, 108590, 85040, 57723, 14474, 119452, 142646, 128299, 73414, 87701, 13409, 5878, 44664, 10650,
205366, 14108, 1675, 104092, 4531, 6625, 194140, 108134, 51179, 286475, 5809, 60334, 23417, 43628, 26551, 3791, 61182, 72637, 1555, 26601,
57364, 35435, 101339, 49842, 170756, 74109, 167787, 74888, 13734, 2200, 71836, 37715, 18203, 68621, 153692, 225949, 66761, 35459, 1564, 171975,
51025, 20673, 114840, 226387, 45924, 81994, 15964, 72198, 137478, 189006, 360081, 8276, 1303, 82884, 185924, 64289, 35035, 9496, 24511, 59819,
5563, 76228, 112664, 6093, 22526, 218231, 28274, 62240, 834, 3040, 101744, 38020, 54744, 51804, 1300, 30349, 133214, 42305, 46577, 8012,
11374, 44162, 32366, 28706, 27518, 73387, 74858, 13841, 46790, 216388, 74130, 83207, 129618, 217256, 16239, 3316,
}; };
const unsigned int expire_nonces[] = { const unsigned int expire_nonces[] = {
53643, 193025, 37619, 252203, 58420, 37206, 120531, 38736, 98682, 46851, 2564, 13385, 81600, 23899, 9954, 3054, 60346, 662, 16045, 61363,
5408, 42419, 79305, 42088, 27227, 38681, 10473, 68404, 13386, 148340, 19580, 99967, 36210, 45456, 107180, 51079, 25340, 96039, 17774, 20660,
27265, 14930, 23512, 259139, 52524, 139580, 15274, 107872, 13512, 39058, 20023, 21706, 14344, 49624, 766, 71855, 7116, 64335, 119626, 5020,
6528, 171375, 100432, 20647, 38238, 41994, 32188, 20306, 37666, 102447, 6373, 13861, 90563, 15432, 36049, 16241, 9818, 53998, 311447, 37240,
122325, 24994, 13778, 12889, 14487, 5961, 212456, 5949, 14945, 72000, 4264, 34932, 142440, 18535, 24222, 43775, 10437, 87953, 23866, 9961,
34139, 52284, 72275, 39792, 3626, 47870, 26350, 2030, 21205, 242795, 76330, 109343, 87624, 7513, 74088, 21330, 67554, 20723, 99673, 44398,
6922, 42897, 49239, 36965, 29472, 47434, 39801, 7848, 107087, 56181, 4099, 16139, 2313, 9043, 54291, 93056, 4878, 188177, 50352, 50953,
11574, 218603, 921, 62918, 87550, 5039, 199191, 11595, 151114, 69613, 2572, 2087, 34771, 69726, 84958, 175062, 74084, 292971, 43131, 102500,
200746, 93161, 24752, 54040, 30086, 243689, 4355, 148401, 23334, 22731, 103800, 38617, 16526, 108869, 44337, 14756, 72664, 40835, 37837, 11052,
67536, 4909, 129386, 17413, 48047, 59554, 80856, 112253, 116605, 49616, 165928, 62862, 88629, 293382, 14562, 69048, 8023, 71971, 16485, 92234,
28509, 124700, 81689, 20237, 45435, 65531, 88501, 69505, 1910, 2339, 46881, 79768, 30199, 38001, 25730, 87500, 18552, 30302, 340024, 36658,
105547, 3571, 92337, 40606, 19594, 65255, 171478, 180842, 42044, 165883, 13251, 55514, 48282, 16902, 27668, 16910, 17340, 84040, 99271, 10660,
13358, 31680, 36101, 172555, 96773, 72536, 155350, 2098, 11005, 150888, 5096, 48967, 67140, 10150, 61081, 58481, 8810, 31547, 14312, 24710,
23162, 238079, 8065, 88390, 59240, 159426, 18883, 100712, 50303, 12778, 178565, 103778, 22937, 37785, 58133, 9488, 2233, 55984, 8158, 169474,
4122, 39015, 87028, 21859, 204734, 125392, 7046, 101177, 30313, 38983, 24324, 58792, 925, 177062, 78121, 76064, 98772, 119054, 5941, 6750,
33926, 12411, 89317, 13614, 32803, 20403, 9974, 155161, 126861, 138228, 1049, 300184, 24579, 67765, 103210, 42894, 40687, 3927, 49197, 76255,
96019, 41401, 7382, 276438, 241196, 87614, 19478, 50243, 29382, 27322, 18304, 21440, 41538, 8645, 10638, 29197, 54905, 18116, 41732, 6714,
50149, 12226, 72311, 261323, 148422, 33798, 19257, 159967, 35923, 1871, 29500, 45558, 33851, 70910, 82984, 20968, 158603, 165040, 143126, 30609,
35370, 1934, 20297, 67350, 39297, 37949, 27448, 11718, 99752, 78981, 78192, 90400, 141716, 899, 16620, 31287, 80, 53190, 147371, 55313,
6827, 9146, 54521, 11337, 32495, 131559, 74671, 18399, 9176, 23039, 98186, 77433, 84829, 30329, 19457, 118700, 65132, 625, 24729, 4798,
68035, 35216, 10352, 48005, 57711, 4111, 10910, 3728, 42934, 148284, 73348, 1784, 53980, 72906, 65482, 8776, 26046, 2788, 105441, 76393,
17258, 25026, 21188, 74496, 85191, 42063, 88363, 50770, 6496, 96991, 92791, 6932, 156322, 56986, 84120, 444, 47017, 9148, 32463, 32177,
18379, 166816, 51923, 11159, 46012, 40566, 191245, 77859, 10582, 39886, 58355, 17886, 105486, 251741, 30331, 20398, 152671, 1515, 121956, 40534,
14617, 87189, 10621, 1924, 82382, 17764, 6480, 57891, 34821, 2814, 62208, 53832, 25027, 10205, 47954, 73675, 1818, 110316, 31935, 10104,
54541, 73597, 97789, 127407, 32318, 12967, 29903, 11871, 96127, 29539, 55534, 61790, 106282, 17025, 87973, 140432, 17441, 3152, 132315, 23315,
43608, 8382, 9974, 13281, 201100, 8637, 310817, 49145, 46113, 6755, 20383, 2444, 86496, 11363, 107467, 11987, 14515, 38108, 66194, 131606,
140141, 237272, 101425, 275710, 35425, 107336, 21626, 24303, 67533, 97938, 173908, 46722, 133116, 71937, 159575, 10424, 1554, 94821, 4532, 263033,
38556, 315214, 12328, 322, 51291, 15382, 7078, 111, 11374, 13528, 105651, 43511, 20353, 9007, 120414, 96394, 52795, 120158, 84121, 98610,
23632, 114220, 5723, 34296, 86986, 16045, 522, 22529, 5611, 73259, 7085, 93556, 19176, 73629, 19147, 3448, 11546, 44697, 54770, 2138,
48757, 39981, 58614, 69598, 172362, 61830, 38832, 77165, 17464, 229210, 50286, 103112, 111726, 21435, 108459, 1392, 180756, 71890, 22035, 2432,
146635, 100205, 72180, 115848, 65228, 47877, 27028, 136614, 37698, 6976, 11239, 54513, 5986, 176181, 18208, 48810, 34514, 11583, 4079, 109626,
16142, 114525, 149787, 14563, 26711, 75974, 1473, 80188, 115058, 144729, 127580, 90625, 93926, 6819, 53215, 114912, 21542, 90165, 126673, 36965,
39907, 40755, 30276, 46183, 119711, 206462, 17425, 103303, 2199, 57205, 120551, 74474, 45368, 22058, 1739, 32628, 300494, 36571, 15079, 33698,
226714, 57224, 110498, 60932, 93610, 129, 130557, 59604, 22063, 43375, 9617, 50449, 75945, 21178, 38182, 48944, 93583, 76392, 9456, 47243,
11610, 28350, 7582, 79781, 10865, 43149, 96470, 36001, 192437, 179354, 25810, 80581, 37407, 121159, 47369, 75639, 33099, 87033, 10415, 35690,
10228, 89266, 7910, 156039, 267310, 13344, 93112, 27293, 42582, 55182, 12329, 92943, 15487, 158179, 5888, 41612, 51100, 79976, 75740, 27069,
27195, 17225, 93669, 102846, 64936, 1136, 140, 73174, 8659, 112737, 38684, 19024, 10156, 345731, 26250, 51426, 24929, 53092, 13609, 9279,
131488, 53985, 80662, 176405, 87433, 170967, 10978, 185759, 199916, 34024, 20701, 17001, 84548, 91289, 11972, 22441, 62807, 86864, 4706, 18188,
7838, 5129, 3591, 8126, 19177, 33500, 143216, 39321, 16370, 143905, 104485, 100614, 69496, 25772, 90612, 28923, 113773, 34854, 4171, 116682,
2679, 51503, 92834, 19531, 33340, 5086, 70009, 4983, 74213, 68851, 130361, 249282, 27465, 55583, 29810, 96671, 19114, 15177, 88275, 45468,
26319, 10016, 55917, 137039, 20227, 9087, 6602, 207466, 1920, 14902, 82930, 48170, 3924, 69117, 90195, 7514, 22488, 30747, 17276, 87208,
8778, 112930, 6476, 39473, 47094, 4146, 46644, 230231, 59400, 8385, 34465, 89056, 159008, 969, 186787, 43531, 34928, 148648, 13913, 85251,
80074, 92678, 13163, 440, 61457, 65142, 1264, 47993, 28298, 22303, 619, 69315, 224468, 61892, 1051, 142335, 15469, 26051, 138781, 42196,
102585, 84609, 62724, 32058, 4264, 12953, 66000, 20420, 5845, 9863, 82663, 117571, 12062, 53859, 83825, 88393, 123899, 93273, 50224, 150841,
38763, 33772, 92168, 68659, 121676, 16753, 56006, 94837, 72432, 42723, 27772, 39077, 37533, 137339, 119466, 17668, 47452, 2886, 91301, 59710,
10070, 18181, 27435, 55469, 5014, 6212, 32777, 13640, 155058, 4801, 97717, 12169, 25697, 33739, 68613, 3752, 106496, 9707, 17635, 22590,
2172, 22607, 22045, 337783, 15163, 14092, 70761, 45246, 57947, 8256, 129649, 14698, 107881, 107562, 27914, 38739, 1276, 115459, 9584, 112295,
21857, 57639, 69802, 37692, 75350, 108166, 110128, 10297, 202304, 277189, 186892, 45758, 28145, 95126, 18883, 1431, 35582, 30530, 218793, 14831,
100368, 258936, 31115, 6587, 41871, 122116, 49827, 78331, 38975, 159839, 106432, 106457, 70629, 137267, 156228, 32405, 29419, 52594, 37612, 52950,
16620, 8790, 25848, 32898, 21040, 381409, 33867, 198668, 25577, 50833, 90081, 15596, 98943, 40284, 24918, 9938, 207618, 36022, 34346, 248522,
1563, 66657, 46516, 42621, 22630, 33949, 46949, 17531, 7166, 61699, 235110, 9442, 734, 355481, 82720, 129744, 66608, 20553, 56016, 194907,
32573, 14976, 62930, 117242, 16964, 87579, 33119, 235295, 54355, 60343, 77911, 13421, 29657, 93608, 273, 8308, 179278, 62722, 18845, 43080,
22289, 58048, 1946, 36960, 25046, 5308, 205643, 220624, 64664, 68716, 225734, 24739, 9321, 344082, 101159, 56916, 68283, 21433, 163610, 10941,
97214, 40261, 141321, 99397, 132590, 14605, 58838, 62340, 44877, 91900, 31830, 133002, 136379, 184244, 2234, 118919, 48524, 105355, 38533, 90929,
3790, 25997, 1795, 11827, 97922, 93, 179423, 350, 10327, 40879, 31043, 93480, 22608, 69495, 82709, 37967, 70265, 19237, 64245, 25844,
22343, 31416, 138676, 3672, 41575, 77002, 199599, 59124, 4381, 18723, 11443, 3378, 83112, 92474, 118818, 53231, 57804, 186355,
}; };
const unsigned int support_nonces1[] = { const unsigned int support_nonces1[] = {
105701, 115584, 37683, 27712, 42977, 51687, 132104, 219642, 77841, 55531, 39835, 60468, 65890, 26405, 58568, 44787, 10392, 113274, 19569, 71577,
13564, 117419, 73277, 153293, 142955, 72110, 37463, 62119, 78019, 43317, 12085, 205774, 4559, 8782, 26196, 62256, 26071, 62174, 44714, 77671,
10408, 52672, 284680, 230150, 21623, 48803, 16417, 55640, 129049, 116488, 29691, 206707, 69178, 82483, 21579, 300730, 6619, 11232, 4791, 49366,
41627, 7494, 78035, 1595, 22143, 301, 89697, 25699, 4234, 71440, 73688, 168057, 68666, 52037, 150726, 103062, 2609, 115568, 16721, 164211,
7401, 58869, 53932, 29626, 1163, 16368, 117353, 196807, 40560, 75864, 32864, 105357, 48008, 69528, 30688, 2811, 253656, 99130, 58999, 29880,
86242, 164842, 261952, 42966, 31269, 151460, 193885, 120629, 28690, 103892, 57158, 222230, 34981, 5607, 81232, 91845, 113558, 57190, 124566, 22648,
95195, 16868, 64307, 6336, 35715, 5468, 55442, 4855, 1558, 47981, 19120, 9092, 300548, 23436, 35, 797, 92203, 39311, 24606, 11158,
1673, 12417, 87010, 57350, 66760, 347, 136748, 23558, 156370, 8112, 54140, 49233, 56257, 5230, 125920, 20477, 30751, 17721, 32154, 102145,
32751, 67399, 78430, 62284, 38879, 63197, 41810, 47568, 2194, 20021, 96903, 4744, 50637, 8248, 17475, 51563, 108749, 33246, 112000, 68837,
55230, 65910, 11530, 7441, 110596, 108561, 71692, 43935, 151361, 79724, 343971, 89425, 10745, 15654, 8192, 291103, 105727, 105198, 117107, 132589,
99792, 107989, 82596, 9169, 291679, 112377, 41344, 185047, 7018, 5951, 16114, 84852, 41096, 28314, 71667, 49992, 26479, 70432, 89958, 28196,
88404, 140428, 87970, 81004, 152441, 36684, 173721, 3349, 3175, 252786, 16912, 475, 137722, 49276, 82607, 60290, 60386, 88897, 28232, 17288,
32720, 40948, 76930, 20858, 43320, 45434, 68488, 164113, 20916, 239879, 6647, 48635, 29520, 39950, 206708, 246066, 188602, 59507, 47616, 248094,
40956, 111839, 68933, 74051, 192633, 25137, 97047, 72680, 153778, 109034, 20368, 5089, 17860, 39920, 48756, 89570, 55877, 95875, 124268, 5730,
43666, 16939, 18176, 133058, 32517, 46410, 194708, 40105, 58360, 137048, 26529, 441792, 1279, 68653, 12819, 16875, 121644, 129490, 12557, 19990,
10313, 165416, 20483, 7205, 5507, 19765, 3457, 154415, 48932, 82199, 28213, 65710, 55331, 31021, 38430, 9562, 35248, 67954, 206349, 75344,
160148, 23694, 55796, 78716, 70039, 164, 41686, 53995, 54996, 67472, 153603, 39491, 17749, 108455, 55196, 15230, 47410, 27547, 27817, 120506,
47392, 17816, 214640, 22687, 169977, 101026, 9873, 49577, 10778, 125898, 146185, 110652, 119988, 19716, 49318, 105939, 112419, 83773, 198460, 31037,
76370, 34024, 177655, 93657, 24720, 31059, 17496, 111609, 281936, 16678, 4441, 1274, 111370, 13264, 25544, 61275, 32757, 939, 77742, 50142,
7952, 78319, 26740, 34426, 43900, 59040, 93664, 43267, 70771, 4339, 130882, 1245, 38950, 65739, 132023, 40071, 58295, 200481, 298, 36261,
161842, 14987, 68264, 16, 36136, 80695, 13263, 90082, 857, 107417, 72063, 157533, 12480, 13907, 189869, 21281, 161007, 60508, 89552, 36312,
161366, 1416, 14466, 10056, 23907, 74171, 5261, 240414, 15976, 56496, 107153, 23059, 150578, 3054, 204955, 11172, 207131, 274238, 149167, 563276,
50007, 93917, 101335, 33195, 5902, 26325, 69080, 157373, 51960, 691, 29719, 23172, 96823, 43700, 239002, 40345, 41303, 32329, 84210, 43465,
54830, 67430, 33423, 127739, 9219, 62709, 495080, 227830, 73772, 13165, 2985, 60271, 68445, 44983, 44226, 106916, 65913, 12391, 2474, 37752,
3613, 117489, 4320, 114186, 132594, 69, 46875, 33889, 172546, 15312, 73209, 120487, 62162, 46595, 157796, 20803, 373, 23838, 5788, 10665,
21267, 85199, 7134, 67319, 76992, 21812, 51259, 9249, 9862, 24484, 79950, 36236, 78267, 38033, 61118, 64373, 45012, 14230, 724, 65975,
59952, 75454, 75256, 2651, 39566, 75408, 38682, 35976, 27900, 43089, 69790, 114404, 25587, 10833, 42495, 43750, 284208, 2486, 59226, 7819,
156885, 43435, 193627, 83950, 5709, 60268, 92811, 13408, 15480, 58406, 72457, 11922, 56156, 55745, 4844, 87477, 97402, 58147, 48177, 68289,
215450, 28785, 19379, 10100, 44302, 19849, 74044, 26939, 37505, 61336, 126652, 7989, 134337, 142620, 78308, 60354, 36198, 108997, 88169, 16222,
20033, 19624, 63951, 6755, 18613, 43297, 180012, 66684, 6631, 121649, 107794, 108743, 91716, 149076, 293058, 59769, 117934, 11776, 84524, 5644,
22531, 320516, 74811, 59326, 17935, 39781, 137162, 44383, 33226, 114852, 101743, 36687, 35922, 63910, 16476, 119768, 18970, 26228, 166714, 37445,
181180, 67566, 157014, 13412, 166344, 47237, 2946, 1812, 122065, 28047, 57435, 37310, 44988, 8068, 8495, 40094, 138610, 12464, 97767, 91000,
46154, 219650, 86082, 70152, 104421, 159526, 78937, 87378, 29769, 236780, 5881, 5816, 80082, 122207, 17905, 50427, 25702, 9719, 33494, 119270,
23349, 89921, 115223, 27581, 14524, 59617, 83790, 54662, 33948, 86135, 27585, 8257, 66469, 3857, 1936, 12223, 135639, 10109, 269868, 83152,
2294, 17568, 6718, 28464, 19443, 48403, 49226, 116460, 41971, 145968, 28698, 8299, 6513, 8871, 6397, 69652, 41330, 70946, 425761, 10053,
18998, 18336, 4439, 17381, 31806, 174135, 8843, 5821, 59615, 70414, 140508, 87541, 41190, 258318, 52161, 112392, 90585, 44157, 32931, 92045,
8139, 92130, 292188, 27433, 32219, 3543, 264777, 64492, 56545, 2022, 10545, 4046, 92835, 134967, 154400, 280611, 42452, 17596, 132265, 88621,
84938, 134120, 31399, 47938, 2636, 78275, 95149, 3045, 23538, 37556, 19474, 7100, 58597, 171403, 18609, 11847, 97688, 90354, 10842, 23273,
7601, 14137, 11467, 106593, 48554, 155380, 139237, 20564, 17083, 13782, 335523, 116016, 34301, 9065, 105784, 63288, 100918, 59759, 24926, 76893,
259910, 28778, 14579, 23222, 217354, 106378, 31622, 138311, 62060, 231925, 43263, 56612, 23327, 44719, 17687, 55305, 19827, 213422, 54628, 6844,
137370, 99259, 12165, 71289, 288569, 138298, 72384, 51470, 7769, 58315, 31737, 147644, 41800, 219903, 114, 160519, 33530, 77797, 29950, 134561,
}; };
const unsigned int support_nonces2[] = { const unsigned int support_nonces2[] = {
48702, 44910, 140964, 17704, 11556, 21180, 29805, 90484, 193777, 16876, 84485, 31978, 6485, 38305, 45178, 64995, 108015, 24887, 66832, 156207,
15155, 27884, 78520, 659, 92784, 99385, 69875, 18357, 13829, 87382, 83638, 11333, 35112, 15947, 4018, 128067, 9754, 6005, 62146, 12706,
46608, 65607, 65131, 168763, 53739, 27749, 96759, 15690, 2153, 67153, 56469, 55700, 57671, 51340, 48138, 3704, 37223, 2494, 4480, 508,
13489, 139244, 54725, 26897, 93614, 18265, 6707, 12046, 27070, 75341, 40768, 51175, 19575, 205837, 85607, 78776, 19241, 195742, 40958, 24603,
139417, 12032, 134983, 58875, 2878, 75451, 58147, 3217, 79206, 85487, 3143, 58331, 105198, 92572, 92782, 10894, 6618, 9570, 21284, 16439,
18664, 41326, 1626, 56088, 47222, 12817, 40648, 49519, 63781, 75246, 251880, 25246, 3277, 17418, 26432, 66302, 151159, 250858, 21833, 9905,
10883, 263162, 8502, 110769, 26554, 104794, 1160, 35622, 1581, 21486, 128302, 27044, 37419, 16968, 30802, 14314, 37553, 10206, 92102, 113579,
23668, 31824, 28294, 41480, 109983, 5951, 100510, 20950, 35565, 47013, 22545, 714, 327429, 252719, 16126, 34301, 147813, 95988, 19529, 100005,
41826, 91009, 52933, 58867, 62875, 84031, 131209, 7100, 81796, 292517, 57982, 21483, 72193, 3666, 32397, 106879, 35758, 56006, 37686, 70568,
49363, 59229, 28120, 5635, 83082, 19464, 6361, 11129, 111566, 20012, 271200, 72687, 32142, 48953, 21081, 26391, 150757, 64189, 88986, 14145,
17332, 118951, 63053, 1140, 52805, 55065, 71125, 13182, 112795, 81320, 79637, 19822, 16232, 130352, 63970, 54587, 64734, 299019, 52714, 279567,
81635, 191166, 66330, 36626, 94722, 52716, 133306, 20991, 64508, 34170, 9167, 26293, 130577, 7432, 1262, 215601, 209606, 60978, 103679, 177627,
88659, 9779, 70051, 123365, 158677, 142215, 165612, 176285, 5277, 69969, 74791, 67214, 4350, 55026, 205, 161149, 22469, 40801, 47188, 9819,
123460, 4739, 25210, 1181, 22451, 147063, 45230, 183496, 50047, 142425, 17975, 17099, 48805, 159, 294792, 27373, 9233, 16249, 52948, 78183,
90173, 10472, 97468, 2218, 111455, 212848, 2916, 18721, 30825, 190739, 730, 81770, 182557, 125610, 97462, 52798, 305891, 108731, 35923, 15569,
113909, 24856, 8440, 86811, 211, 29718, 17486, 59240, 46915, 20444, 118054, 71848, 40335, 47187, 84665, 1257, 7987, 76756, 48812, 124483,
76005, 12477, 16029, 16541, 17049, 3641, 51405, 22015, 102809, 82073, 73431, 49551, 7053, 148320, 121392, 18701, 23620, 23053, 91896, 2388,
79420, 20290, 178940, 16336, 11521, 80562, 151537, 24375, 14822, 89007, 29519, 5541, 109717, 93519, 103286, 20304, 22049, 185695, 20784, 117887,
168314, 106790, 190447, 9747, 71739, 73323, 223536, 43707, 6166, 53859, 122791, 4275, 32826, 121994, 22203, 22400, 75930, 25383, 29109, 10340,
77193, 19913, 180298, 148, 20032, 43052, 68174, 63836, 76626, 45639, 45126, 32375, 272882, 61476, 38090, 13940, 77914, 40209, 89811, 235515,
136164, 15480, 66532, 189984, 70371, 46701, 87073, 101098, 13573, 32446, 33519, 67630, 44844, 157902, 19825, 3528, 135904, 32014, 71653, 116536,
40411, 3277, 5337, 4480, 33121, 31322, 16519, 46549, 8561, 9329, 2262, 53669, 7566, 52824, 50641, 167427, 115139, 12562, 51459, 11163,
15755, 57765, 37039, 52216, 170054, 23913, 3224, 22095, 43992, 66225, 82459, 10698, 47121, 3555, 37387, 185456, 178227, 155458, 66981, 7689,
764, 75691, 35599, 5417, 269692, 86253, 90212, 26251, 8874, 16060, 10579, 30572, 27853, 4985, 6239, 113367, 26014, 9272, 46634, 65581,
27117, 33737, 203711, 116599, 19914, 62543, 2856, 308138, 9975, 5428, 44516, 77119, 26318, 19206, 16174, 16305, 42306, 76256, 49358, 303783,
39726, 1759, 24200, 6970, 154491, 59163, 144476, 46342, 64023, 78238, 9447, 94186, 38361, 154993, 58181, 19885, 30963, 7306, 2050, 5402,
71701, 52740, 30958, 122696, 6737, 210973, 32609, 19114, 58624, 92640, 66248, 126578, 122137, 23256, 28622, 27844, 15971, 5314, 74666, 1896,
12948, 11073, 16901, 25895, 21842, 9027, 60460, 33030, 67370, 44786, 97639, 52535, 14425, 6560, 54838, 78028, 20103, 71507, 5480, 55848,
113286, 85555, 29815, 37009, 75025, 23515, 65613, 104071, 7267, 63431, 73301, 17061, 1400, 88763, 93424, 26927, 28919, 47748, 13840, 17317,
96262, 8044, 61330, 19289, 78340, 12648, 198796, 175488, 22506, 31865, 35122, 2707, 119238, 15921, 62937, 16929, 18469, 77481, 13897, 101257,
83995, 94606, 113201, 11202, 10724, 33568, 54055, 43569, 191502, 5594, 18924, 131630, 160336, 33996, 84273, 83560, 70259, 53519, 20590, 3034,
24091, 27495, 6129, 128914, 51810, 33524, 29688, 35199, 39280, 108535, 39753, 18937, 3561, 58170, 62775, 1576, 107856, 54170, 65370, 12104,
1736, 70288, 10865, 5106, 185582, 82878, 955, 3329, 2251, 138742, 40386, 63106, 6144, 44550, 125542, 25589, 1217, 107154, 20404, 127760,
93783, 74610, 35624, 98287, 67057, 8956, 3387, 48018, 6227, 100255, 8104, 14437, 87335, 199215, 44589, 15488, 3179, 30359, 181399, 152069,
36146, 55132, 49590, 11123, 158871, 457652, 57564, 50630, 4577, 2105, 14147, 87565, 35987, 177109, 5931, 15251, 31617, 5518, 34442, 59885,
44065, 14316, 105841, 120794, 1948, 2004, 12254, 126543, 7061, 26528, 1458, 41217, 14679, 128013, 94796, 85561, 13198, 31644, 11924, 4131,
45784, 70172, 44564, 143614, 39200, 75869, 14353, 127113, 70557, 38980, 120312, 89686, 35868, 4246, 12591, 94393, 40626, 14260, 64334, 47681,
63364, 14319, 18884, 256, 44183, 16794, 45418, 126627, 31531, 60619, 97764, 48127, 53655, 54065, 19851, 56328, 123303, 24166, 15544, 5110,
16674, 99942, 16293, 4961, 57609, 247725, 102578, 76154, 4376, 74861, 23521, 27984, 4370, 173573, 1785, 90144, 74354, 105024, 389612, 34413,
27560, 14614, 158129, 126472, 79987, 20773, 48122, 116607, 39308, 150466, 19094, 160259, 169955, 11068, 32392, 54575, 61718, 8943, 29657, 2261,
64570, 49849, 46186, 23349, 80633, 4727, 45020, 44244, 18138, 9984, 57348, 33694, 64291, 127736, 64825, 177160, 111028, 159847, 36130, 145139,
12649, 8930, 343846, 8772, 85447, 20913, 6850, 7148, 35165, 6243, 16526, 31705, 11778, 55003, 4824, 21938, 67429, 7366, 38320, 41846,
80328, 15660, 17966, 103914, 37229, 75098, 32367, 137670, 30573, 13861, 47841, 25161, 80405, 157160, 1457, 94161, 64524, 50426, 5443, 36045,
99470, 331362, 16339, 294785, 944, 180161, 354424, 29493, 90717, 76017, 41471, 85305, 121160, 15220, 92828, 16116, 141727, 10088, 24520, 63294,
157363, 94801, 41689, 285734, 11149, 2512, 17019, 86324, 11610, 111098, 18568, 135265, 35317, 13190, 50868, 24839, 80108, 150751, 10780, 5533,
198344, 10291, 83710, 39609, 33945, 11683, 93409, 28102, 20296, 64664, 2062, 320734, 76590, 39004, 1429, 2348, 90137, 174978, 140517, 74371,
1384, 23191, 168994, 31248, 81598, 179948, 1255, 7520, 8735, 23643, 76279, 101879, 59068, 324058, 104733, 43966, 166138, 26100, 36348, 47804,
27822, 136323, 25917, 18533, 105920, 50395, 98221, 2001, 46451, 191395, 45191, 10706, 227891, 18458, 32708, 112131, 58139, 65925, 34037, 1961,
12709, 5158, 74971, 76936, 104398, 11660, 55449, 208248, 31366, 73869, 74557, 143649, 109898, 88364, 26886, 74583, 101449, 23997, 130427, 14364,
66816, 163398, 195525, 17431, 22347, 32792, 83361, 66235, 19852, 13907, 59807, 23579, 40911, 49913, 106395, 51711, 41727, 29611, 204144, 30296,
52216, 40466, 9592, 110002, 10990, 71981, 87843, 271672, 20693, 26582, 24708, 28774, 5750, 46661, 61531, 42306, 208655, 5962, 32236, 16097,
21839, 250793, 18064, 18993, 45669, 26660, 109817, 48143, 96317, 14468, 31243, 88407, 20491, 117342, 129792, 8760, 209491, 104345, 17532, 41112,
21931, 10907, 367206, 56636, 42977, 84096, 78926, 50284, 151140, 16814, 6804, 22350, 6459, 3608, 2173, 35950, 6557, 84113, 150918, 10596,
1581, 46599, 18978, 28613, 165947, 1030, 95786, 49411, 161086, 52389, 28255, 22935, 48609, 67850, 72223, 150268, 29399, 2444, 23915, 1418,
221160, 8204, 32467, 24016, 462, 12787, 116808, 9401, 7582, 154849, 18417, 7660, 56550, 17766, 15612, 74308, 68602, 55606, 163741, 92535,
14292, 101912, 2662, 36954, 47938, 84462, 119556, 63212, 15535, 112705, 75401, 8159, 178987, 127166, 77021, 21419, 15078, 33664, 146040, 39927,
11959, 12403, 226703, 60436, 48242, 180368, 20683, 13789, 38857, 72504, 56725, 5462, 133529, 4943, 134825, 27973, 40807, 40169, 90602, 131110,
62740, 27778, 16689, 126445, 63668, 135369, 16489, 91265, 87614, 256543, 93608, 23814, 34921, 134637, 44912, 1086, 14666, 112896, 56979, 120225,
31608, 63165, 8084, 48884, 60285, 233181, 133145, 67325, 38060, 82702, 57262, 183046, 25724, 69421, 86985, 94680, 57515, 2746, 7855, 10388,
274112, 1546, 17121, 72008, 63213, 66714, 4427, 26378, 293747, 54190, 44833, 10166, 51638, 61027, 58418, 64097, 32867, 39133, 71152, 188447,
13609, 46687, 14907, 3925, 54506, 89292, 21048, 52230, 80904, 39484, 4021, 27500, 48756, 10977, 15363, 82377, 24785, 55586, 29522, 88893,
199322, 17743, 68138, 19352, 47055, 144457, 19211, 29628, 69986, 131196, 23417, 190522, 130486, 60156, 9110, 9374, 26590, 197062, 116642, 256574,
53872, 49387, 152281, 51824, 22041, 33971, 15108, 13337, 162014, 40602, 1810, 26620, 6196, 88645, 13416, 42248, 25197, 25957, 164029, 29407,
106200, 8292, 19773, 1304, 55807, 70998, 10637, 83313, 122595, 227472, 3244, 43435, 32690, 77897, 22771, 139588, 38701, 38858, 13087, 223691,
24159, 98863, 39656, 10452, 127345, 6191, 68732, 4303, 94547, 52004, 497256, 9695, 2790, 34423, 61963, 44155, 17454, 17697, 99606, 5921,
19411, 2513, 229112, 93276, 46105, 94524, 93852, 19074, 7569, 19864, 53552, 61573, 30218, 35719, 34613, 30185, 29495, 22668, 17255, 73155,
47459, 121864, 50899, 96723, 197798, 91795, 77069, 26481, 147668, 202302, 167223, 17424, 4564, 29054, 292540, 47005, 15217, 32684, 46319, 47355,
5928, 184427, 12000, 56211, 5622, 24665, 22639, 30812, 169494, 83456, 215672, 64858, 35548, 76607, 179348, 7482, 28966, 167081, 21110, 142042,
137941, 17169, 2000, 104824, 136832, 71272, 141938, 63227, 28633, 55314, 6557, 67578, 1081, 22086, 34319, 37219, 19035, 81698, 5101, 40983,
146418, 373502, 191002, 118787, 8980, 15847, 36560, 30751, 212194, 39768, 173184, 53801, 31177, 133297, 57425, 48918, 64814, 170576, 76009, 35920,
75, 11013, 7055, 104552, 9149, 54963, 2738, 28738, 25418, 48211, 53553, 6089, 185451, 29659, 111896, 88276, 97097, 214984, 12685, 15694,
39567, 47613, 19398, 177205, 29822, 104444, 115853, 31753, 26932, 48801, 280813, 9327, 25702, 102973, 2914, 7868, 76892, 21414, 2929, 4741,
111612, 25639, 44335, 94548, 84888, 14268, 10561, 50159, 37092, 19300, 79576, 54406, 311323, 4415, 107241, 37109, 130592, 105966, 64027, 2481,
37845, 45460, 36084, 59780, 40756, 71487, 60695, 29116, 53714, 24781, 265743, 43832, 113390, 37302, 255474, 37930, 97974, 50085, 30520, 53249,
58210, 137549, 65394, 34018, 56946, 4416, 1841, 58247, 53607, 32158, 9669, 19077, 8698, 2527, 128954, 82225, 99537, 12948, 17041, 13229,
88902, 135830, 17041, 39545, 6724, 52312, 53347, 2825, 215441, 74588, 29913, 64236, 23177, 19638, 19284, 10734, 27651, 13643, 159984, 32055,
19509, 38730, 2412, 127743, 32123, 92704, 179750, 50374, 21157, 222824, 37072, 31326, 10133, 44272, 29103, 73198, 45518, 20431, 78646, 124136,
54796, 11741, 46491, 45248, 285619, 32196, 106068, 287634, 2688, 118090, 32405, 437928, 83075, 82835, 26139, 78349, 100309, 9348, 15118, 87994,
82950, 7794, 33720, 2455, 102322, 100087, 169239, 39274, 6861, 66819, 193260, 64148, 33269, 195726, 246297, 37216, 41421, 28982, 33583, 61761,
114355, 7949, 23741, 54772, 23483, 94184, 14850, 182793, 55775, 57186, 96577, 44402, 34973, 39442, 117641, 46791, 109820, 157964, 38233, 171932,
6405, 222525, 20364, 69784, 125103, 119738, 30484, 25932, 109801, 71021, 15506, 41300, 25142, 121457, 22915, 15401, 13117, 100395, 12393, 29844,
67308, 20082, 26806, 30199, 74329, 43277, 65960, 14599, 1792, 104329, 53631, 37621, 1839, 189856, 17671, 123831, 15265, 15950, 105008, 11045,
25474, 15522, 87555, 60020, 103660, 41229, 115987, 19328, 69277, 102703, 104919, 38181, 17917, 63593, 39498, 162541, 70285, 4493, 11988, 12130,
53647, 113118, 10548, 19783, 27221, 17091, 14797, 61259, 43178, 28954, 172831, 10841, 129004, 16611, 7730, 43699, 53784, 31584, 52960, 109150,
123513, 29391, 23953, 70469, 28759, 57824, 19168, 13562, 4571, 26173, 106389, 99529, 24110, 37749, 81189, 16295, 26336, 95104, 24062, 96811,
60313, 52354, 9731, 33617, 7708, 116302, 145296, 63414, 79680, 598, 40907, 23483, 69798, 9821, 70370, 64157, 13233, 2964, 3340, 57980,
9047, 47056, 37125, 149483, 5432, 89502, 55348, 172980, 8886, 137667, 48499, 21648, 139413, 25614, 101920, 68001, 37475, 29964, 281688, 82636,
148918, 23869, 10506, 24099, 238653, 24339, 22464, 7307, 68969, 33856, 63402, 166077, 72512, 55853, 54834, 16844, 5344, 8213, 16750, 92777,
34296, 203325, 51164, 7833, 109377, 13562, 126128, 159047, 37659, 67068, 12901, 186291, 5233, 47559, 90392, 14283, 4655, 30827, 4369, 296,
62885, 17276, 198570, 97716, 125203, 163072, 25870, 101965, 163916, 46804, 2974, 42787, 74125, 70769, 15561, 68557, 33641, 2651, 39873, 14350,
95510, 41574, 235037, 123980, 9143, 94471, 73153, 11363, 93164, 63362, 123309, 44272, 2756, 54170, 96893, 7449, 22590, 100866, 38523, 37962,
86526, 24756, 14070, 16924, 83332, 4100, 317190, 285610, 61499, 27712, 310183, 75467, 5002, 113432, 20139, 75366, 10223, 9626, 2902, 93067,
76315, 4835, 40248, 5447, 12097, 81545, 12833, 37877, 242159, 91197, 353924, 54803, 60636, 56704, 57029, 20109, 8670, 47684, 39459, 9580,
2425, 26630, 2519, 152473, 65756, 32133, 248062, 4329, 39461, 27326, 24221, 3555, 57299, 208521, 47178, 5775, 40642, 92909, 37452, 83853,
33558, 98007, 35090, 200461, 19532, 28572, 115567, 10390, 83286, 58626, 24890, 20253, 143420, 91900, 48127, 7521, 38410, 28417, 46160, 4674,
88522, 12284, 6507, 7279, 66431, 55510, 2911, 25166, 1303, 495978, 22944, 36422, 97612, 249013, 30091, 32729, 5488, 25066, 74187, 174721,
66969, 161276, 5564, 26862, 122295, 50245, 26803, 227395, 357530, 6129, 1832, 66999, 71705, 103764, 206111, 22958, 4817, 211037, 87626, 80,
2874, 24150, 9499, 52916, 14152, 141953, 21624, 22911, 42470, 52998, 119152, 44719, 27825, 80881, 7967, 85978, 271024, 68422, 99387, 68697,
1080, 37439, 131336, 59290, 38910, 29273, 94703, 8312, 116959, 51277, 32927, 8819, 54330, 17518, 115917, 69265, 102676, 55696, 78218, 13548,
849, 40262, 190652, 11850, 38769, 87731, 143411, 65908, 50669, 4674, 17255, 30874, 17063, 46053, 60024, 87861, 24615, 102278, 247716, 4240,
125631, 98358, 39497, 33785, 54496, 44453, 113984, 47609, 2319, 88314, 70849, 29186, 21347, 57262, 51874, 3913, 29282, 12120, 8091, 14243,
22946, 31369, 99638, 7495, 260385, 116804, 136433, 70265, 98192, 31726, 124224, 117256, 66180, 11593, 11276, 34718, 45992, 66520, 82240, 100160,
12780, 17332, 3003, 47373, 74798, 26352, 5939, 15375, 8675, 101575, 24972, 1126, 111403, 107584, 156249, 87170, 66076, 314707, 23090, 476,
164102, 100976, 101627, 10537, 54993, 31846, 126637, 20135, 158708, 7478, 246929, 64000, 24746, 59114, 112717, 34290, 239, 111026, 65364, 25458,
25893, 28672, 66730, 39996, 126228, 20288, 77905, 34495, 19051, 12352, 71441, 9048, 94023, 19363, 18505, 5804, 29281, 35474, 6371, 125763,
55961, 124354, 58053, 5836, 17005, 3143, 4591, 122833, 14138, 17268, 75263, 63272, 18898, 229349, 34559, 23567, 36232, 373, 30958, 18740,
36030, 16341, 56423, 35558, 107746, 52961, 66136, 211036, 46256, 26463, 160696, 114465, 21754, 9391, 41847, 131575, 14104, 44005, 182942, 98576,
33814, 5837, 34306, 99237, 109457, 20216, 136509, 215181, 26837, 7661, 65509, 17740, 71097, 4138, 1315, 31749, 18369, 198943, 103419, 35616,
50220, 12966, 89526, 91218, 19980, 120895, 37290, 36883, 18725, 81858, 39803, 144747, 30976, 14757, 199256, 3986, 257700, 41095, 12762, 7481,
1600, 23014, 255282, 72423, 100392, 1207, 207156, 11959, 62546, 110928, 37102, 40313, 16581, 12104, 67320, 4649, 27549, 9637, 19414, 40547,
18915, 39838, 11316, 61634, 30352, 166281, 4171, 167586, 23141, 107122, 264665, 91462, 3739, 14641, 794, 30649, 140639, 20127, 114792, 152420,
53327, 66841, 15665, 2139, 129790, 152050, 22873, 47846, 46836, 72224, 6634, 121923, 59142, 208242, 81643, 249953, 43306, 4012, 7416, 36676,
112396, 10779, 81485, 27048, 3607, 15669, 43750, 36080, 54178, 103924, 79703, 11628, 176955, 45798, 50159, 19625, 1048, 110544, 24615, 26470,
23998, 56178, 247600, 41719, 20168, 123337, 367762, 248158, 71843, 71079, 11756, 136840, 82172, 9582, 9893, 129496, 56324, 15205, 10333, 11737,
24365, 76, 6585, 64163, 48816, 62945, 91850, 80506, 101195, 93166, 73620, 9843, 128158, 86644, 36734, 29757, 11255, 120120, 266883, 3488,
102935, 80953, 18790, 93369, 30499, 88326, 94172, 39076, 24049, 4947, 22443, 135471,
}; };
BOOST_FIXTURE_TEST_SUITE(claimtrie_tests, TestingSetup) BOOST_FIXTURE_TEST_SUITE(claimtrie_tests, TestingSetup)
@ -412,7 +412,7 @@ bool CreateBlock(CBlockTemplate* pblocktemplate, CNoncePrinter * pnp, int nonce)
pblock->nTime = chainActive.Tip()->GetMedianTimePast()+1; pblock->nTime = chainActive.Tip()->GetMedianTimePast()+1;
CMutableTransaction txCoinbase(pblock->vtx[0]); CMutableTransaction txCoinbase(pblock->vtx[0]);
txCoinbase.vin[0].scriptSig = CScript() << CScriptNum(unique_block_counter++) << CScriptNum(chainActive.Height()); txCoinbase.vin[0].scriptSig = CScript() << CScriptNum(unique_block_counter++) << CScriptNum(chainActive.Height());
txCoinbase.vout[0].nValue = GetBlockSubsidy(chainActive.Height(), Params().GetConsensus()); txCoinbase.vout[0].nValue = GetBlockSubsidy(chainActive.Height() + 1, Params().GetConsensus());
pblock->vtx[0] = CTransaction(txCoinbase); pblock->vtx[0] = CTransaction(txCoinbase);
pblock->hashMerkleRoot = pblock->ComputeMerkleRoot(); pblock->hashMerkleRoot = pblock->ComputeMerkleRoot();
if (!pnp) if (!pnp)

View file

@ -12,48 +12,48 @@
BOOST_FIXTURE_TEST_SUITE(main_tests, TestingSetup) BOOST_FIXTURE_TEST_SUITE(main_tests, TestingSetup)
static void TestBlockSubsidyHalvings(const Consensus::Params& consensusParams) static void TestBlockSubsidyReductions(const Consensus::Params& consensusParams)
{ {
int maxHalvings = 64; int maxReductions = 500;
CAmount nInitialSubsidy = 50 * COIN; CAmount nInitialSubsidy = 500 * COIN;
int nHeight;
CAmount nPreviousSubsidy = nInitialSubsidy * 2; // for height == 0 int nReductions;
BOOST_CHECK_EQUAL(nPreviousSubsidy, nInitialSubsidy * 2); for (nReductions = 0; nReductions < maxReductions; nReductions++)
for (int nHalvings = 0; nHalvings < maxHalvings; nHalvings++) { {
int nHeight = nHalvings * consensusParams.nSubsidyHalvingInterval; nHeight = (((nReductions * nReductions + nReductions) >> 1) * consensusParams.nSubsidyLevelInterval) + 1;
CAmount nSubsidy = GetBlockSubsidy(nHeight, consensusParams); CAmount nSubsidy = GetBlockSubsidy(nHeight, consensusParams);
BOOST_CHECK(nSubsidy <= nInitialSubsidy); BOOST_CHECK_EQUAL(nSubsidy, nInitialSubsidy - nReductions * COIN);
BOOST_CHECK_EQUAL(nSubsidy, nPreviousSubsidy / 2);
nPreviousSubsidy = nSubsidy;
} }
BOOST_CHECK_EQUAL(GetBlockSubsidy(maxHalvings * consensusParams.nSubsidyHalvingInterval, consensusParams), 0); nHeight = (((nReductions * nReductions + nReductions) >> 1) * consensusParams.nSubsidyLevelInterval) + 1;
BOOST_CHECK_EQUAL(GetBlockSubsidy(nHeight, consensusParams), 0);
} }
static void TestBlockSubsidyHalvings(int nSubsidyHalvingInterval) static void TestBlockSubsidyReductions(int nSubsidyLevelInterval)
{ {
Consensus::Params consensusParams; Consensus::Params consensusParams;
consensusParams.nSubsidyHalvingInterval = nSubsidyHalvingInterval; consensusParams.nSubsidyLevelInterval = nSubsidyLevelInterval;
TestBlockSubsidyHalvings(consensusParams); TestBlockSubsidyReductions(consensusParams);
} }
BOOST_AUTO_TEST_CASE(block_subsidy_test) BOOST_AUTO_TEST_CASE(block_subsidy_test)
{ {
TestBlockSubsidyHalvings(Params(CBaseChainParams::MAIN).GetConsensus()); // As in main TestBlockSubsidyReductions(Params(CBaseChainParams::MAIN).GetConsensus()); // As in main
TestBlockSubsidyHalvings(150); // As in regtest TestBlockSubsidyReductions(1); // As in regtest
TestBlockSubsidyHalvings(1000); // Just another interval TestBlockSubsidyReductions(5); // Just another interval
} }
BOOST_AUTO_TEST_CASE(subsidy_limit_test) BOOST_AUTO_TEST_CASE(subsidy_limit_test)
{ {
const Consensus::Params& consensusParams = Params(CBaseChainParams::MAIN).GetConsensus(); const Consensus::Params& consensusParams = Params(CBaseChainParams::MAIN).GetConsensus();
CAmount nSum = 0; CAmount nSum = 0;
for (int nHeight = 0; nHeight < 14000000; nHeight += 1000) { nSum += GetBlockSubsidy(0, consensusParams);
for (int nHeight = 1; nHeight < 5000001; nHeight += 1000) {
CAmount nSubsidy = GetBlockSubsidy(nHeight, consensusParams); CAmount nSubsidy = GetBlockSubsidy(nHeight, consensusParams);
BOOST_CHECK(nSubsidy <= 50 * COIN); BOOST_CHECK(nSubsidy <= 500 * COIN);
nSum += nSubsidy * 1000; nSum += nSubsidy * 1000;
BOOST_CHECK(MoneyRange(nSum)); BOOST_CHECK(MoneyRange(nSum));
} }
BOOST_CHECK_EQUAL(nSum, 20781250000000000LL); BOOST_CHECK_EQUAL(nSum, 107091600000000000LL);
} }
bool ReturnFalse() { return false; } bool ReturnFalse() { return false; }

View file

@ -91,17 +91,17 @@ struct {
};*/ };*/
const unsigned int nonces[] = { const unsigned int nonces[] = {
114541, 40175, 23379, 121337, 4042, 35872, 42421, 145983, 4319, 8578, 42473, 132922, 17014, 33293, 25205, 745, 3501, 91831, 345165, 212732,
41220, 74215, 146557, 50967, 88259, 58152, 268596, 5792, 143361, 44697, 7458, 27522, 18166, 10552, 135630, 54469, 1846, 80584, 12131, 5490,
43002, 21193, 70268, 162059, 38523, 30695, 138206, 87472, 134523, 57662, 16008, 2151, 22470, 126425, 39085, 88559, 20079, 38991, 124860, 123602,
9345, 155238, 43247, 16926, 275759, 12455, 28819, 106643, 45302, 60635, 68971, 98750, 62257, 127839, 22507, 8283, 50129, 123950, 102719, 180111,
154668, 2603, 450823, 53229, 165143, 105432, 165849, 25684, 75902, 56928, 149088, 7175, 67345, 64223, 79645, 93448, 2962, 67297, 92578, 5208,
14741, 30997, 8054, 37001, 18039, 1756, 121352, 93199, 34162, 30404, 111709, 77651, 196939, 18915, 115928, 15329, 52016, 19224, 43787, 38019,
40672, 8901, 67062, 36928, 29084, 73141, 61906, 12881, 114189, 47550, 5584, 28397, 13333, 3934, 153943, 15534, 3792, 26791, 13480, 34165,
9109, 118675, 12945, 190955, 5882, 144237, 38280, 56629, 69485, 32170, 33841, 22960, 2934, 21914, 121194, 4859, 31253, 221893, 38217, 38269,
51951, 117891, 6592, 22601, 5958, 70998, 193724, 11394, 40056, 14009, 70801, 1634, 38357, 233028, 37013, 19370, 38351, 156457, 17848, 8185,
8935, 15990, 22127, 13847, 6130, 60578, 13413, 33884, 91806, 44141, 107332, 20137, 47262, 101528, 22313, 54730, 1167, 202357, 134755, 34502,
24658, 5826, 148899, 32744, 42810, 9978, 54633, 153655, 28932, 73692 46143, 56776, 20297, 57361, 160230, 45089, 39421, 66186, 20829, 4318,
}; };
// NOTE: These tests rely on CreateNewBlock doing its own self-validation! // NOTE: These tests rely on CreateNewBlock doing its own self-validation!
@ -133,6 +133,7 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
txCoinbase.vin[0].scriptSig.push_back(0); txCoinbase.vin[0].scriptSig.push_back(0);
txCoinbase.vin[0].scriptSig.push_back(chainActive.Height()); txCoinbase.vin[0].scriptSig.push_back(chainActive.Height());
txCoinbase.vout[0].scriptPubKey = CScript(); txCoinbase.vout[0].scriptPubKey = CScript();
txCoinbase.vout[0].nValue = GetBlockSubsidy(chainActive.Height() + 1, Params().GetConsensus());
pblock->vtx[0] = CTransaction(txCoinbase); pblock->vtx[0] = CTransaction(txCoinbase);
if (txFirst.size() < 2) if (txFirst.size() < 2)
txFirst.push_back(new CTransaction(pblock->vtx[0])); txFirst.push_back(new CTransaction(pblock->vtx[0]));
@ -270,16 +271,6 @@ BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
delete pblocktemplate; delete pblocktemplate;
mempool.clear(); mempool.clear();
// subsidy changing
int nHeight = chainActive.Height();
chainActive.Tip()->nHeight = 2099999;
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey));
delete pblocktemplate;
chainActive.Tip()->nHeight = 2100000;
BOOST_CHECK(pblocktemplate = CreateNewBlock(scriptPubKey));
delete pblocktemplate;
chainActive.Tip()->nHeight = nHeight;
// non-final txs in mempool // non-final txs in mempool
SetMockTime(chainActive.Tip()->GetMedianTimePast()+1); SetMockTime(chainActive.Tip()->GetMedianTimePast()+1);