Block height in coinbase as a new block rule

"Version 2" blocks are blocks that have nVersion=2 and
have the block height as the first item in their coinbase.
Block-height-in-the-coinbase is strictly enforced when
version=2 blocks are a supermajority in the block chain
(750 of the last 1,000 blocks on main net, 51 of 100 for
testnet). This does not affect old clients/miners at all,
which will continue producing nVersion=1 blocks, and
which will continue to be valid.
This commit is contained in:
Gavin Andresen
2012-06-27 19:30:39 -04:00
parent 3fcec0d4a0
commit de237cbfa4
2 changed files with 34 additions and 2 deletions

View File

@@ -820,7 +820,7 @@ class CBlock
{
public:
// header
static const int CURRENT_VERSION=1;
static const int CURRENT_VERSION=2;
int nVersion;
uint256 hashPrevBlock;
uint256 hashMerkleRoot;
@@ -1164,6 +1164,12 @@ public:
return pindex->GetMedianTimePast();
}
/**
* Returns true if there are nRequired or more blocks of minVersion or above
* in the last nToCheck blocks, starting at pstart and going backwards.
*/
static bool IsSuperMajority(int minVersion, const CBlockIndex* pstart,
unsigned int nRequired, unsigned int nToCheck);
std::string ToString() const