Dash Core Source Documentation (0.16.0.1)
Find detailed information regarding the Dash Core source code.
pow.cpp
Go to the documentation of this file.
16 unsigned int static KimotoGravityWell(const CBlockIndex* pindexLast, const Consensus::Params& params) {
34 if (BlockLastSolved == nullptr || BlockLastSolved->nHeight == 0 || (uint64_t)BlockLastSolved->nHeight < PastBlocksMin) { return UintToArith256(params.powLimit).GetCompact(); }
44 PastDifficultyAverage = ((PastDifficultyAverage - PastDifficultyAveragePrev) / i) + PastDifficultyAveragePrev;
46 PastDifficultyAverage = PastDifficultyAveragePrev - ((PastDifficultyAveragePrev - PastDifficultyAverage) / i);
62 if ((PastRateAdjustmentRatio <= EventHorizonDeviationSlow) || (PastRateAdjustmentRatio >= EventHorizonDeviationFast))
82 unsigned int static DarkGravityWave(const CBlockIndex* pindexLast, const Consensus::Params& params) {
83 /* current difficulty formula, dash - DarkGravity v3, written by Evan Duffield - evan@dash.org */
132 unsigned int GetNextWorkRequiredBTC(const CBlockIndex* pindexLast, const CBlockHeader *pblock, const Consensus::Params& params)
151 while (pindex->pprev && pindex->nHeight % params.DifficultyAdjustmentInterval() != 0 && pindex->nBits == nProofOfWorkLimit)
168 unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader *pblock, const Consensus::Params& params)
208 unsigned int CalculateNextWorkRequired(const CBlockIndex* pindexLast, int64_t nFirstBlockTime, const Consensus::Params& params)
unsigned int GetNextWorkRequiredBTC(const CBlockIndex *pindexLast, const CBlockHeader *pblock, const Consensus::Params ¶ms)
Definition: pow.cpp:132
bool fPowAllowMinDifficultyBlocks
Definition: params.h:174
unsigned int CalculateNextWorkRequired(const CBlockIndex *pindexLast, int64_t nFirstBlockTime, const Consensus::Params ¶ms)
Definition: pow.cpp:208
uint32_t GetCompact(bool fNegative=false) const
Definition: arith_uint256.cpp:226
int nMinimumDifficultyBlocks
these parameters are only used on devnet and can be configured from the outside
Definition: params.h:185
unsigned int GetNextWorkRequired(const CBlockIndex *pindexLast, const CBlockHeader *pblock, const Consensus::Params ¶ms)
Definition: pow.cpp:168
bool CheckProofOfWork(uint256 hash, unsigned int nBits, const Consensus::Params ¶ms)
Check whether a block hash satisfies the proof-of-work requirement specified by nBits.
Definition: pow.cpp:233
unsigned static int DarkGravityWave(const CBlockIndex *pindexLast, const Consensus::Params ¶ms)
Definition: pow.cpp:82
int64_t DifficultyAdjustmentInterval() const
Definition: params.h:180
unsigned static int KimotoGravityWell(const CBlockIndex *pindexLast, const Consensus::Params ¶ms)
Definition: pow.cpp:16
The block chain is a tree shaped structure starting with the genesis block at the root...
Definition: chain.h:170
arith_uint256 & SetCompact(uint32_t nCompact, bool *pfNegative=nullptr, bool *pfOverflow=nullptr)
The "compact" format is a representation of a whole number N using an unsigned 32bit number similar t...
Definition: arith_uint256.cpp:206
CBlockIndex * GetAncestor(int height)
Efficiently find an ancestor of this block.
Definition: chain.cpp:110
Nodes collect new transactions into a block, hash them into a hash tree, and scan through nonce value...
Definition: block.h:20