Bitcoin ABC  0.26.3
P2P Digital Currency
Namespaces | Functions
pow.h File Reference
#include <cstdint>
Include dependency graph for pow.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 Consensus
 

Functions

uint32_t GetNextWorkRequired (const CBlockIndex *pindexPrev, const CBlockHeader *pblock, const CChainParams &chainParams)
 
bool CheckProofOfWork (const BlockHash &hash, uint32_t nBits, const Consensus::Params &params)
 Check whether a block hash satisfies the proof-of-work requirement specified by nBits. More...
 
bool PermittedDifficultyTransition (const Consensus::Params &params, int64_t height, uint32_t old_nbits, uint32_t new_nbits)
 Return false if the proof-of-work requirement specified by new_nbits at a given height is not possible, given the proof-of-work on the prior block as specified by old_nbits. More...
 

Function Documentation

◆ CheckProofOfWork()

bool CheckProofOfWork ( const BlockHash hash,
uint32_t  nBits,
const Consensus::Params params 
)

Check whether a block hash satisfies the proof-of-work requirement specified by nBits.

Definition at line 91 of file pow.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetNextWorkRequired()

uint32_t GetNextWorkRequired ( const CBlockIndex pindexPrev,
const CBlockHeader pblock,
const CChainParams chainParams 
)

Definition at line 21 of file pow.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PermittedDifficultyTransition()

bool PermittedDifficultyTransition ( const Consensus::Params params,
int64_t  height,
uint32_t  old_nbits,
uint32_t  new_nbits 
)

Return false if the proof-of-work requirement specified by new_nbits at a given height is not possible, given the proof-of-work on the prior block as specified by old_nbits.

For blocks prior to the UAHF, this function only checks that the new value is within a factor of 4 of the old value for blocks at the difficulty adjustment interval, and otherwise requires the values to be the same.

For blocks after UAHF and before the switch to CW-144, the difficulty is allowed to change for any blocks, but still within a factor 4.

After the switch to the CW-144 DAA, any change in difficulty is theoretically possible, so always return true.

Always returns true on networks where min difficulty blocks are allowed, such as regtest/testnet.

Definition at line 47 of file pow.cpp.

Here is the call graph for this function:
Here is the caller graph for this function: