36 m_last_header_received(m_chain_start->GetBlockHeader()),
55 "Initial headers sync started with peer=%d: height=%i, "
56 "max_commitments=%i, min_work=%s\n",
109 ret.request_more =
true;
117 "Initial headers sync aborted with peer=%d: incomplete "
118 "headers message at height=%i (presync phase)\n",
147 "Initial headers sync complete with peer=%d: "
148 "releasing all at height=%i (redownload phase)\n",
152 ret.request_more =
true;
160 "Initial headers sync aborted with peer=%d: incomplete "
161 "headers message at height=%i (redownload phase)\n",
167 if (!(
ret.success &&
ret.request_more)) {
174 const std::vector<CBlockHeader> &
headers) {
192 "Initial headers sync aborted with peer=%d: non-continuous "
193 "headers at height=%i (presync phase)\n",
200 for (
const auto &hdr :
headers) {
214 "Initial headers sync transition with peer=%d: reached "
215 "sufficient work at height=%i, redownloading from height=%i\n",
238 LogPrintf(
"Initial headers sync aborted with peer=%d: invalid "
239 "difficulty transition at height=%i (presync phase)\n",
252 LogPrintf(
"Initial headers sync aborted with peer=%d: exceeded max "
253 "commitments at height=%i (presync phase)\n",
279 "Initial headers sync aborted with peer=%d: non-continuous "
280 "headers at height=%i (redownload phase)\n",
296 "Initial headers sync aborted with peer=%d: invalid "
297 "difficulty transition at height=%i (redownload phase)\n",
319 "Initial headers sync aborted with peer=%d: commitment "
320 "overrun at height=%i (redownload phase)\n",
331 "Initial headers sync aborted with peer=%d: commitment "
332 "mismatch at height=%i (redownload phase)\n",
347 std::vector<CBlockHeader>
ret;
372 std::vector<BlockHash>
locator;
arith_uint256 GetBlockProof(const CBlockIndex &block)
std::vector< BlockHash > LocatorEntries(const CBlockIndex *index)
Construct a list of hash entries to put in a locator.
static constexpr int64_t MAX_FUTURE_BLOCK_TIME
Maximum amount of time that a block timestamp is allowed to exceed the current network-adjusted time ...
#define Assume(val)
Assume is the identity function.
The block chain is a tree shaped structure starting with the genesis block at the root,...
arith_uint256 nChainWork
(memory only) Total amount of work (expected number of hashes) in the chain up to and including this ...
BlockHash GetBlockHash() const
int nHeight
height of the entry in the chain. The genesis block has height 0
256-bit unsigned big integer.
std::string ToString() const
size_type size() const noexcept
Count the number of bits in the container.
#define LogPrint(category,...)
bool PermittedDifficultyTransition(const Consensus::Params ¶ms, 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 possibl...
T GetRand(T nMax=std::numeric_limits< T >::max()) noexcept
Generate a uniform random integer of type T in the range [0..nMax) nMax defaults to std::numeric_limi...
Describes a place in the block chain to another node such that if the other node doesn't have the sam...
Parameters that influence chain consensus.
std::chrono::time_point< NodeClock, std::chrono::seconds > NodeSeconds
NodeClock::time_point GetAdjustedTime()