Within the supply code for the CBlockHeader
class, there’s a subject known as nBites
.
/** Nodes accumulate new transactions right into a block, hash them right into a hash tree,
* and scan by way of nonce values to make the block's hash fulfill proof-of-work
* necessities. After they remedy the proof-of-work, they broadcast the block
* to everybody and the block is added to the block chain. The primary transaction
* within the block is a particular one which creates a brand new coin owned by the creator
* of the block.
*/
class CBlockHeader
{
public:
// header
int32_t nVersion;
uint256 hashPrevBlock;
uint256 hashMerkleRoot;
uint32_t nTime;
uint32_t nBits;
uint32_t nNonce;
So far as I searched within the code, I did not discovered any remark for this subject. However I noticed the CheckBlockHeader
operate utilizing the nBits
subject to test proof of labor of the block. So I interpret that it is a illustration of the problem for the block.
static bool CheckBlockHeader(const CBlockHeader& block, BlockValidationState& state, const Consensus::Params& consensusParams, bool fCheckPOW = true)
{
// Verify proof of labor matches claimed quantity
if (fCheckPOW && !CheckProofOfWork(block.GetHash(), block.nBits, consensusParams))
return state.Invalid(BlockValidationResult::BLOCK_INVALID_HEADER, "high-hash", "proof of labor failed");
return true;
}
Is my understanding appropriate?