mirror of
https://github.com/dashpay/dash.git
synced 2024-12-27 04:52:59 +01:00
0fe8010a10
Remove the pnext pointer in CBlockIndex, and replace it with a vBlockIndexByHeight vector (no effect on memory usage). pnext can now be replaced by vBlockIndexByHeight[nHeight+1], but FindBlockByHeight becomes constant-time. This also means the entire mapBlockIndex structure and the block index entries in it become purely blocktree-related data, and independent from the currently active chain, potentially allowing them to be protected by separate mutexes in the future.
197 lines
6.0 KiB
Diff
197 lines
6.0 KiB
Diff
diff --git a/contrib/test-patches/bitcoind-comparison.patch b/contrib/test-patches/bitcoind-comparison.patch
|
|
index 04a8618..519429a 100644
|
|
--- a/src/main.cpp
|
|
+++ b/src/main.cpp
|
|
@@ -31,8 +31,8 @@ CTxMemPool mempool;
|
|
|
|
map<uint256, CBlockIndex*> mapBlockIndex;
|
|
std::vector<CBlockIndex*> vBlockIndexByHeight;
|
|
-uint256 hashGenesisBlock("0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f");
|
|
-static CBigNum bnProofOfWorkLimit(~uint256(0) >> 32);
|
|
+uint256 hashGenesisBlock("0x0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206");
|
|
+static CBigNum bnProofOfWorkLimit(~uint256(0) >> 1);
|
|
CBlockIndex* pindexGenesisBlock = NULL;
|
|
int nBestHeight = -1;
|
|
uint256 nBestChainWork = 0;
|
|
@@ -1055,7 +1055,7 @@ int64 static GetBlockValue(int nHeight, int64 nFees)
|
|
int64 nSubsidy = 50 * COIN;
|
|
|
|
// Subsidy is cut in half every 210000 blocks, which will occur approximately every 4 years
|
|
- nSubsidy >>= (nHeight / 210000);
|
|
+ nSubsidy >>= (nHeight / 150);
|
|
|
|
return nSubsidy + nFees;
|
|
}
|
|
@@ -2736,9 +2736,9 @@ bool InitBlockIndex() {
|
|
block.hashPrevBlock = 0;
|
|
block.hashMerkleRoot = block.BuildMerkleTree();
|
|
block.nVersion = 1;
|
|
- block.nTime = 1231006505;
|
|
- block.nBits = 0x1d00ffff;
|
|
- block.nNonce = 2083236893;
|
|
+ block.nTime = 1296688602;
|
|
+ block.nBits = 0x207fffff;
|
|
+ block.nNonce = 2;
|
|
|
|
if (fTestNet)
|
|
{
|
|
@@ -3024,7 +3024,7 @@ bool static AlreadyHave(const CInv& inv)
|
|
// The message start string is designed to be unlikely to occur in normal data.
|
|
// The characters are rarely used upper ASCII, not valid as UTF-8, and produce
|
|
// a large 4-byte int at any alignment.
|
|
-unsigned char pchMessageStart[4] = { 0xf9, 0xbe, 0xb4, 0xd9 };
|
|
+unsigned char pchMessageStart[4] = { 0xfa, 0xbf, 0xb5, 0xda };
|
|
|
|
|
|
void static ProcessGetData(CNode* pfrom)
|
|
diff --git a/src/test/miner_tests.cpp b/src/test/miner_tests.cpp
|
|
index af28465..ee9a4db 100644
|
|
--- a/src/test/miner_tests.cpp
|
|
+++ b/src/test/miner_tests.cpp
|
|
@@ -15,34 +15,117 @@ struct {
|
|
unsigned char extranonce;
|
|
unsigned int nonce;
|
|
} blockinfo[] = {
|
|
- {4, 0xa4a3e223}, {2, 0x15c32f9e}, {1, 0x0375b547}, {1, 0x7004a8a5},
|
|
- {2, 0xce440296}, {2, 0x52cfe198}, {1, 0x77a72cd0}, {2, 0xbb5d6f84},
|
|
- {2, 0x83f30c2c}, {1, 0x48a73d5b}, {1, 0xef7dcd01}, {2, 0x6809c6c4},
|
|
- {2, 0x0883ab3c}, {1, 0x087bbbe2}, {2, 0x2104a814}, {2, 0xdffb6daa},
|
|
- {1, 0xee8a0a08}, {2, 0xba4237c1}, {1, 0xa70349dc}, {1, 0x344722bb},
|
|
- {3, 0xd6294733}, {2, 0xec9f5c94}, {2, 0xca2fbc28}, {1, 0x6ba4f406},
|
|
- {2, 0x015d4532}, {1, 0x6e119b7c}, {2, 0x43e8f314}, {2, 0x27962f38},
|
|
- {2, 0xb571b51b}, {2, 0xb36bee23}, {2, 0xd17924a8}, {2, 0x6bc212d9},
|
|
- {1, 0x630d4948}, {2, 0x9a4c4ebb}, {2, 0x554be537}, {1, 0xd63ddfc7},
|
|
- {2, 0xa10acc11}, {1, 0x759a8363}, {2, 0xfb73090d}, {1, 0xe82c6a34},
|
|
- {1, 0xe33e92d7}, {3, 0x658ef5cb}, {2, 0xba32ff22}, {5, 0x0227a10c},
|
|
- {1, 0xa9a70155}, {5, 0xd096d809}, {1, 0x37176174}, {1, 0x830b8d0f},
|
|
- {1, 0xc6e3910e}, {2, 0x823f3ca8}, {1, 0x99850849}, {1, 0x7521fb81},
|
|
- {1, 0xaacaabab}, {1, 0xd645a2eb}, {5, 0x7aea1781}, {5, 0x9d6e4b78},
|
|
- {1, 0x4ce90fd8}, {1, 0xabdc832d}, {6, 0x4a34f32a}, {2, 0xf2524c1c},
|
|
- {2, 0x1bbeb08a}, {1, 0xad47f480}, {1, 0x9f026aeb}, {1, 0x15a95049},
|
|
- {2, 0xd1cb95b2}, {2, 0xf84bbda5}, {1, 0x0fa62cd1}, {1, 0xe05f9169},
|
|
- {1, 0x78d194a9}, {5, 0x3e38147b}, {5, 0x737ba0d4}, {1, 0x63378e10},
|
|
- {1, 0x6d5f91cf}, {2, 0x88612eb8}, {2, 0xe9639484}, {1, 0xb7fabc9d},
|
|
- {2, 0x19b01592}, {1, 0x5a90dd31}, {2, 0x5bd7e028}, {2, 0x94d00323},
|
|
- {1, 0xa9b9c01a}, {1, 0x3a40de61}, {1, 0x56e7eec7}, {5, 0x859f7ef6},
|
|
- {1, 0xfd8e5630}, {1, 0x2b0c9f7f}, {1, 0xba700e26}, {1, 0x7170a408},
|
|
- {1, 0x70de86a8}, {1, 0x74d64cd5}, {1, 0x49e738a1}, {2, 0x6910b602},
|
|
- {0, 0x643c565f}, {1, 0x54264b3f}, {2, 0x97ea6396}, {2, 0x55174459},
|
|
- {2, 0x03e8779a}, {1, 0x98f34d8f}, {1, 0xc07b2b07}, {1, 0xdfe29668},
|
|
- {1, 0x3141c7c1}, {1, 0xb3b595f4}, {1, 0x735abf08}, {5, 0x623bfbce},
|
|
- {2, 0xd351e722}, {1, 0xf4ca48c9}, {1, 0x5b19c670}, {1, 0xa164bf0e},
|
|
- {2, 0xbbbeb305}, {2, 0xfe1c810a},
|
|
+{4, 2762203683},
|
|
+{2, 365113248},
|
|
+{1, 58045772},
|
|
+{1, 1879353512},
|
|
+{2, 3460563607},
|
|
+{2, 1389355416},
|
|
+{1, 2007444690},
|
|
+{2, 3143462790},
|
|
+{2, 2213743660},
|
|
+{1, 1218919771},
|
|
+{1, 4017999107},
|
|
+{2, 1745471173},
|
|
+{2, 142846780},
|
|
+{1, 142326754},
|
|
+{2, 553953301},
|
|
+{2, 3757796778},
|
|
+{1, 4002023946},
|
|
+{2, 3124901826},
|
|
+{1, 2802010589},
|
|
+{1, 877077181},
|
|
+{3, 3593029427},
|
|
+{2, 3969866902},
|
|
+{2, 3392125996},
|
|
+{1, 1805972490},
|
|
+{2, 22889779},
|
|
+{1, 1846647676},
|
|
+{2, 1139340052},
|
|
+{2, 664153912},
|
|
+{2, 3044128027},
|
|
+{2, 3010194979},
|
|
+{2, 3514377385},
|
|
+{2, 1807880922},
|
|
+{1, 1661815113},
|
|
+{2, 2588692156},
|
|
+{2, 1431037239},
|
|
+{1, 3594379210},
|
|
+{2, 2701839377},
|
|
+{1, 1973060452},
|
|
+{2, 4218620174},
|
|
+{1, 3895224884},
|
|
+{1, 3812528857},
|
|
+{3, 1703867851},
|
|
+{2, 3123904294},
|
|
+{5, 36151564},
|
|
+{1, 2846294357},
|
|
+{5, 3499546633},
|
|
+{1, 924279160},
|
|
+{1, 2198572304},
|
|
+{1, 3336802574},
|
|
+{2, 2185182379},
|
|
+{1, 2575632458},
|
|
+{1, 1965161345},
|
|
+{1, 2865408940},
|
|
+{1, 3594887915},
|
|
+{5, 2062161796},
|
|
+{5, 2641251194},
|
|
+{1, 1290342362},
|
|
+{1, 2883355438},
|
|
+{6, 1244984107},
|
|
+{2, 4065479712},
|
|
+{2, 465481866},
|
|
+{1, 2907174016},
|
|
+{1, 2667735788},
|
|
+{1, 363417673},
|
|
+{2, 3519780275},
|
|
+{2, 4165713317},
|
|
+{1, 262548689},
|
|
+{1, 3764359529},
|
|
+{1, 2027001003},
|
|
+{5, 1043862655},
|
|
+{5, 1937481940},
|
|
+{1, 1664585233},
|
|
+{1, 1834979792},
|
|
+{2, 2288070330},
|
|
+{2, 3915617412},
|
|
+{1, 3086662813},
|
|
+{2, 430970259},
|
|
+{1, 1519443249},
|
|
+{2, 1540874280},
|
|
+{2, 2496660261},
|
|
+{1, 2847522842},
|
|
+{1, 977329763},
|
|
+{1, 1458040519},
|
|
+{5, 2241822454},
|
|
+{1, 4253963824},
|
|
+{1, 722247551},
|
|
+{1, 3127905834},
|
|
+{1, 1903207432},
|
|
+{1, 1893631657},
|
|
+{1, 1960201429},
|
|
+{1, 1239890082},
|
|
+{2, 1762702850},
|
|
+{0, 1681675873},
|
|
+{1, 1411795775},
|
|
+{2, 2548720534},
|
|
+{2, 1427588186},
|
|
+{2, 65566621},
|
|
+{1, 2566081936},
|
|
+{1, 3229297415},
|
|
+{1, 3756168812},
|
|
+{1, 826394561},
|
|
+{1, 3015022068},
|
|
+{1, 1935326986},
|
|
+{5, 1648098256},
|
|
+{2, 3545360164},
|
|
+{1, 4106897609},
|
|
+{1, 1528415857},
|
|
+{1, 2707734286},
|
|
+{2, 3149837061},
|
|
+{2, 4263280906},
|
|
+
|
|
};
|
|
|
|
// NOTE: These tests rely on CreateNewBlock doing its own self-validation!
|