|
|
@ -13133,18 +13133,7 @@ uint64_t wallet2::get_daemon_blockchain_target_height(string &err)
|
|
|
|
|
|
|
|
|
|
|
|
uint64_t wallet2::get_approximate_blockchain_height() const
|
|
|
|
uint64_t wallet2::get_approximate_blockchain_height() const
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// time of v2 fork
|
|
|
|
uint64_t approx_blockchain_height = m_nettype == TESTNET ? 0 : (time(NULL) - 1522624244)/307;
|
|
|
|
const time_t fork_time = m_nettype == TESTNET ? 1448285909 : m_nettype == STAGENET ? 1520937818 : 1458748658;
|
|
|
|
|
|
|
|
// v2 fork block
|
|
|
|
|
|
|
|
const uint64_t fork_block = m_nettype == TESTNET ? 624634 : m_nettype == STAGENET ? 32000 : 1009827;
|
|
|
|
|
|
|
|
// avg seconds per block
|
|
|
|
|
|
|
|
const int seconds_per_block = DIFFICULTY_TARGET_V2;
|
|
|
|
|
|
|
|
// Calculated blockchain height
|
|
|
|
|
|
|
|
uint64_t approx_blockchain_height = fork_block + (time(NULL) - fork_time)/seconds_per_block;
|
|
|
|
|
|
|
|
// testnet and stagenet got some huge rollbacks, so the estimation is way off
|
|
|
|
|
|
|
|
static const uint64_t approximate_rolled_back_blocks = m_nettype == TESTNET ? 342100 : 30000;
|
|
|
|
|
|
|
|
if ((m_nettype == TESTNET || m_nettype == STAGENET) && approx_blockchain_height > approximate_rolled_back_blocks)
|
|
|
|
|
|
|
|
approx_blockchain_height -= approximate_rolled_back_blocks;
|
|
|
|
|
|
|
|
LOG_PRINT_L2("Calculated blockchain height: " << approx_blockchain_height);
|
|
|
|
LOG_PRINT_L2("Calculated blockchain height: " << approx_blockchain_height);
|
|
|
|
return approx_blockchain_height;
|
|
|
|
return approx_blockchain_height;
|
|
|
|
}
|
|
|
|
}
|
|
|
|