mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-12 21:02:38 -03:00
Merge pull request #1392 from gavinandresen/testnet_reset
Testnet reset
This commit is contained in:
commit
20cb17e1f9
4 changed files with 20 additions and 17 deletions
|
@ -35,27 +35,32 @@ namespace Checkpoints
|
||||||
(168000, uint256("0x000000000000099e61ea72015e79632f216fe6cb33d7899acb35b75c8303b763"))
|
(168000, uint256("0x000000000000099e61ea72015e79632f216fe6cb33d7899acb35b75c8303b763"))
|
||||||
;
|
;
|
||||||
|
|
||||||
|
static MapCheckpoints mapCheckpointsTestnet =
|
||||||
|
boost::assign::map_list_of
|
||||||
|
( 546, uint256("000000002a936ca763904c3c35fce2f3556c559c0214345d31b1bcebf76acb70"))
|
||||||
|
;
|
||||||
|
|
||||||
bool CheckBlock(int nHeight, const uint256& hash)
|
bool CheckBlock(int nHeight, const uint256& hash)
|
||||||
{
|
{
|
||||||
if (fTestNet) return true; // Testnet has no checkpoints
|
MapCheckpoints& checkpoints = (fTestNet ? mapCheckpointsTestnet : mapCheckpoints);
|
||||||
|
|
||||||
MapCheckpoints::const_iterator i = mapCheckpoints.find(nHeight);
|
MapCheckpoints::const_iterator i = checkpoints.find(nHeight);
|
||||||
if (i == mapCheckpoints.end()) return true;
|
if (i == checkpoints.end()) return true;
|
||||||
return hash == i->second;
|
return hash == i->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetTotalBlocksEstimate()
|
int GetTotalBlocksEstimate()
|
||||||
{
|
{
|
||||||
if (fTestNet) return 0;
|
MapCheckpoints& checkpoints = (fTestNet ? mapCheckpointsTestnet : mapCheckpoints);
|
||||||
|
|
||||||
return mapCheckpoints.rbegin()->first;
|
return checkpoints.rbegin()->first;
|
||||||
}
|
}
|
||||||
|
|
||||||
CBlockIndex* GetLastCheckpoint(const std::map<uint256, CBlockIndex*>& mapBlockIndex)
|
CBlockIndex* GetLastCheckpoint(const std::map<uint256, CBlockIndex*>& mapBlockIndex)
|
||||||
{
|
{
|
||||||
if (fTestNet) return NULL;
|
MapCheckpoints& checkpoints = (fTestNet ? mapCheckpointsTestnet : mapCheckpoints);
|
||||||
|
|
||||||
BOOST_REVERSE_FOREACH(const MapCheckpoints::value_type& i, mapCheckpoints)
|
BOOST_REVERSE_FOREACH(const MapCheckpoints::value_type& i, checkpoints)
|
||||||
{
|
{
|
||||||
const uint256& hash = i.second;
|
const uint256& hash = i.second;
|
||||||
std::map<uint256, CBlockIndex*>::const_iterator t = mapBlockIndex.find(hash);
|
std::map<uint256, CBlockIndex*>::const_iterator t = mapBlockIndex.find(hash);
|
||||||
|
|
|
@ -291,8 +291,8 @@ void ThreadIRCSeed2(void* parg)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fTestNet) {
|
if (fTestNet) {
|
||||||
Send(hSocket, "JOIN #bitcoinTEST\r");
|
Send(hSocket, "JOIN #bitcoinTEST3\r");
|
||||||
Send(hSocket, "WHO #bitcoinTEST\r");
|
Send(hSocket, "WHO #bitcoinTEST3\r");
|
||||||
} else {
|
} else {
|
||||||
// randomly join #bitcoin00-#bitcoin99
|
// randomly join #bitcoin00-#bitcoin99
|
||||||
int channel_number = GetRandInt(100);
|
int channel_number = GetRandInt(100);
|
||||||
|
|
12
src/main.cpp
12
src/main.cpp
|
@ -865,12 +865,12 @@ unsigned int static GetNextWorkRequired(const CBlockIndex* pindexLast, const CBl
|
||||||
// Only change once per interval
|
// Only change once per interval
|
||||||
if ((pindexLast->nHeight+1) % nInterval != 0)
|
if ((pindexLast->nHeight+1) % nInterval != 0)
|
||||||
{
|
{
|
||||||
// Special rules for testnet after 15 Feb 2012:
|
// Special difficulty rule for testnet:
|
||||||
if (fTestNet && pblock->nTime > 1329264000)
|
if (fTestNet)
|
||||||
{
|
{
|
||||||
// If the new block's timestamp is more than 2* 10 minutes
|
// If the new block's timestamp is more than 2* 10 minutes
|
||||||
// then allow mining of a min-difficulty block.
|
// then allow mining of a min-difficulty block.
|
||||||
if (pblock->nTime - pindexLast->nTime > nTargetSpacing*2)
|
if (pblock->nTime > pindexLast->nTime + nTargetSpacing*2)
|
||||||
return nProofOfWorkLimit;
|
return nProofOfWorkLimit;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1926,12 +1926,11 @@ bool LoadBlockIndex(bool fAllowNew)
|
||||||
{
|
{
|
||||||
if (fTestNet)
|
if (fTestNet)
|
||||||
{
|
{
|
||||||
hashGenesisBlock = uint256("0x00000007199508e34a9ff81e6ec0c477a4cccff2a4767a8eee39c11db367b008");
|
|
||||||
bnProofOfWorkLimit = CBigNum(~uint256(0) >> 28);
|
|
||||||
pchMessageStart[0] = 0xfa;
|
pchMessageStart[0] = 0xfa;
|
||||||
pchMessageStart[1] = 0xbf;
|
pchMessageStart[1] = 0xbf;
|
||||||
pchMessageStart[2] = 0xb5;
|
pchMessageStart[2] = 0xb5;
|
||||||
pchMessageStart[3] = 0xda;
|
pchMessageStart[3] = 0xda;
|
||||||
|
hashGenesisBlock = uint256("000000000933ea01ad0ee984209779baaec3ced90fa3f408719526f8d77f4943");
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1977,8 +1976,7 @@ bool LoadBlockIndex(bool fAllowNew)
|
||||||
if (fTestNet)
|
if (fTestNet)
|
||||||
{
|
{
|
||||||
block.nTime = 1296688602;
|
block.nTime = 1296688602;
|
||||||
block.nBits = 0x1d07fff8;
|
block.nNonce = 414098458;
|
||||||
block.nNonce = 384568319;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//// debug print
|
//// debug print
|
||||||
|
|
|
@ -834,7 +834,7 @@ const boost::filesystem::path &GetDataDir(bool fNetSpecific)
|
||||||
path = GetDefaultDataDir();
|
path = GetDefaultDataDir();
|
||||||
}
|
}
|
||||||
if (fNetSpecific && GetBoolArg("-testnet", false))
|
if (fNetSpecific && GetBoolArg("-testnet", false))
|
||||||
path /= "testnet";
|
path /= "testnet3";
|
||||||
|
|
||||||
fs::create_directory(path);
|
fs::create_directory(path);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue