mirror of
https://git.wownero.com/wownero/wownero.git
synced 2024-08-15 01:03:23 +00:00
blockchain: keep block template timestamp not below recent median
Such a template would yield an invalid block, though would require an attacker to have mined a long blockchain with drifting times (assuming the miner's clock is roughly correct) Fixed by crCr62U0
This commit is contained in:
parent
d0d76f771a
commit
b9da0234e9
1 changed files with 3 additions and 1 deletions
|
@ -1385,7 +1385,9 @@ bool Blockchain::create_block_template(block& b, const crypto::hash *from_block,
|
||||||
if (!memcmp(&miner_address, &m_btc_address, sizeof(cryptonote::account_public_address)) && m_btc_nonce == ex_nonce
|
if (!memcmp(&miner_address, &m_btc_address, sizeof(cryptonote::account_public_address)) && m_btc_nonce == ex_nonce
|
||||||
&& m_btc_pool_cookie == m_tx_pool.cookie() && m_btc.prev_id == get_tail_id()) {
|
&& m_btc_pool_cookie == m_tx_pool.cookie() && m_btc.prev_id == get_tail_id()) {
|
||||||
MDEBUG("Using cached template");
|
MDEBUG("Using cached template");
|
||||||
m_btc.timestamp = time(NULL); // update timestamp unconditionally
|
const uint64_t now = time(NULL);
|
||||||
|
if (m_btc.timestamp < now) // ensures it can't get below the median of the last few blocks
|
||||||
|
m_btc.timestamp = now;
|
||||||
b = m_btc;
|
b = m_btc;
|
||||||
diffic = m_btc_difficulty;
|
diffic = m_btc_difficulty;
|
||||||
height = m_btc_height;
|
height = m_btc_height;
|
||||||
|
|
Loading…
Reference in a new issue