More timedate changes from KMD 0.6

This commit is contained in:
Duke Leto
2020-07-09 10:31:12 -04:00
parent e959ea9768
commit d4883bce7c
12 changed files with 76 additions and 72 deletions

View File

@@ -1,4 +1,5 @@
// Copyright (c) 2012 Pieter Wuille // Copyright (c) 2012 Pieter Wuille
// Copyright (c) 2019-2020 The Hush developers
// Distributed under the MIT software license, see the accompanying // Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php. // file COPYING or http://www.opensource.org/licenses/mit-license.php.
@@ -268,7 +269,7 @@ bool CAddrMan::Add_(const CAddress& addr, const CNetAddr& source, int64_t nTimeP
if (pinfo) { if (pinfo) {
// periodically update nTime // periodically update nTime
bool fCurrentlyOnline = (GetAdjustedTime() - addr.nTime < 24 * 60 * 60); bool fCurrentlyOnline = (GetTime() - addr.nTime < 24 * 60 * 60);
int64_t nUpdateInterval = (fCurrentlyOnline ? 60 * 60 : 24 * 60 * 60); int64_t nUpdateInterval = (fCurrentlyOnline ? 60 * 60 : 24 * 60 * 60);
if (addr.nTime && (!pinfo->nTime || pinfo->nTime < addr.nTime - nUpdateInterval - nTimePenalty)) if (addr.nTime && (!pinfo->nTime || pinfo->nTime < addr.nTime - nUpdateInterval - nTimePenalty))
pinfo->nTime = std::max((int64_t)0, addr.nTime - nTimePenalty); pinfo->nTime = std::max((int64_t)0, addr.nTime - nTimePenalty);

View File

@@ -1,6 +1,7 @@
// Copyright (c) 2012 Pieter Wuille // Copyright (c) 2012 Pieter Wuille
// Copyright (c) 2019-2020 The Hush developers
// Distributed under the MIT software license, see the accompanying // Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php. // file COPYING or https://www.opensource.org/licenses/mit-license.php
/****************************************************************************** /******************************************************************************
* Copyright © 2014-2019 The SuperNET Developers. * * Copyright © 2014-2019 The SuperNET Developers. *
@@ -112,10 +113,10 @@ public:
int GetBucketPosition(const uint256 &nKey, bool fNew, int nBucket) const; int GetBucketPosition(const uint256 &nKey, bool fNew, int nBucket) const;
//! Determine whether the statistics about this entry are bad enough so that it can just be deleted //! Determine whether the statistics about this entry are bad enough so that it can just be deleted
bool IsTerrible(int64_t nNow = GetAdjustedTime()) const; bool IsTerrible(int64_t nNow = GetTime()) const;
//! Calculate the relative chance this entry should be given when selecting nodes to connect to //! Calculate the relative chance this entry should be given when selecting nodes to connect to
double GetChance(int64_t nNow = GetAdjustedTime()) const; double GetChance(int64_t nNow = GetTime()) const;
}; };
@@ -530,7 +531,7 @@ public:
} }
//! Mark an entry as accessible. //! Mark an entry as accessible.
void Good(const CService &addr, int64_t nTime = GetAdjustedTime()) void Good(const CService &addr, int64_t nTime = GetTime())
{ {
{ {
LOCK(cs); LOCK(cs);
@@ -541,7 +542,7 @@ public:
} }
//! Mark an entry as connection attempted to. //! Mark an entry as connection attempted to.
void Attempt(const CService &addr, int64_t nTime = GetAdjustedTime()) void Attempt(const CService &addr, int64_t nTime = GetTime())
{ {
{ {
LOCK(cs); LOCK(cs);
@@ -580,7 +581,7 @@ public:
} }
//! Mark an entry as currently-connected-to. //! Mark an entry as currently-connected-to.
void Connected(const CService &addr, int64_t nTime = GetAdjustedTime()) void Connected(const CService &addr, int64_t nTime = GetTime())
{ {
{ {
LOCK(cs); LOCK(cs);

View File

@@ -1,7 +1,8 @@
// Copyright (c) 2010 Satoshi Nakamoto // Copyright (c) 2010 Satoshi Nakamoto
// Copyright (c) 2009-2014 The Bitcoin Core developers // Copyright (c) 2009-2014 The Bitcoin Core developers
// Copyright (c) 2019-2020 The Hush developers
// Distributed under the MIT software license, see the accompanying // Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php. // file COPYING or https://www.opensource.org/licenses/mit-license.php
/****************************************************************************** /******************************************************************************
* Copyright © 2014-2019 The SuperNET Developers. * * Copyright © 2014-2019 The SuperNET Developers. *
@@ -117,7 +118,7 @@ uint256 CAlert::GetHash() const
bool CAlert::IsInEffect() const bool CAlert::IsInEffect() const
{ {
return (GetAdjustedTime() < nExpiration); return (GetTime() < nExpiration);
} }
bool CAlert::Cancels(const CAlert& alert) const bool CAlert::Cancels(const CAlert& alert) const
@@ -152,7 +153,7 @@ bool CAlert::RelayTo(CNode* pnode) const
{ {
if (AppliesTo(pnode->nVersion, pnode->strSubVer) || if (AppliesTo(pnode->nVersion, pnode->strSubVer) ||
AppliesToMe() || AppliesToMe() ||
GetAdjustedTime() < nRelayUntil) GetTime() < nRelayUntil)
{ {
pnode->PushMessage("alert", *this); pnode->PushMessage("alert", *this);
return true; return true;

View File

@@ -1535,8 +1535,8 @@ uint32_t komodo_stake(int32_t validateflag,arith_uint256 bnTarget,int32_t nHeigh
//fprintf(stderr,"blocktime.%u -> ",blocktime); //fprintf(stderr,"blocktime.%u -> ",blocktime);
if ( blocktime < prevtime+3 ) if ( blocktime < prevtime+3 )
blocktime = prevtime+3; blocktime = prevtime+3;
if ( blocktime < GetAdjustedTime()-60 ) if ( blocktime < GetTime()-60 )
blocktime = GetAdjustedTime()+30; blocktime = GetTime()+30;
//fprintf(stderr,"blocktime.%u txtime.%u\n",blocktime,txtime); //fprintf(stderr,"blocktime.%u txtime.%u\n",blocktime,txtime);
} }
if ( value == 0 || txtime == 0 || blocktime == 0 || prevtime == 0 ) if ( value == 0 || txtime == 0 || blocktime == 0 || prevtime == 0 )

View File

@@ -1000,7 +1000,7 @@ bool CheckFinalTx(const CTransaction &tx, int flags)
// However this changes once median past time-locks are enforced: // However this changes once median past time-locks are enforced:
const int64_t nBlockTime = (flags & LOCKTIME_MEDIAN_TIME_PAST) const int64_t nBlockTime = (flags & LOCKTIME_MEDIAN_TIME_PAST)
? chainActive.Tip()->GetMedianTimePast() ? chainActive.Tip()->GetMedianTimePast()
: GetAdjustedTime(); : GetTime();
return IsFinalTx(tx, nBlockHeight, nBlockTime); return IsFinalTx(tx, nBlockHeight, nBlockTime);
} }
@@ -3297,7 +3297,7 @@ void PartitionCheck(bool (*initialDownloadCheck)(), CCriticalSection& cs, const
if (bestHeader == NULL || initialDownloadCheck()) return; if (bestHeader == NULL || initialDownloadCheck()) return;
static int64_t lastAlertTime = 0; static int64_t lastAlertTime = 0;
int64_t now = GetAdjustedTime(); int64_t now = GetTime();
if (lastAlertTime > now-60*60*24) return; // Alert at most once per day if (lastAlertTime > now-60*60*24) return; // Alert at most once per day
const int SPAN_HOURS=4; const int SPAN_HOURS=4;
@@ -3307,7 +3307,7 @@ void PartitionCheck(bool (*initialDownloadCheck)(), CCriticalSection& cs, const
boost::math::poisson_distribution<double> poisson(BLOCKS_EXPECTED); boost::math::poisson_distribution<double> poisson(BLOCKS_EXPECTED);
std::string strWarning; std::string strWarning;
int64_t startTime = GetAdjustedTime()-SPAN_SECONDS; int64_t startTime = GetTime()-SPAN_SECONDS;
LOCK(cs); LOCK(cs);
const CBlockIndex* i = bestHeader; const CBlockIndex* i = bestHeader;
@@ -5119,28 +5119,28 @@ bool CheckBlockHeader(int32_t *futureblockp,int32_t height,CBlockIndex *pindex,
*futureblockp = 0; *futureblockp = 0;
if ( ASSETCHAINS_ADAPTIVEPOW > 0 ) if ( ASSETCHAINS_ADAPTIVEPOW > 0 )
{ {
if (blockhdr.GetBlockTime() > GetAdjustedTime() + 4) if (blockhdr.GetBlockTime() > GetTime() + 4)
{ {
//LogPrintf("CheckBlockHeader block from future %d error",blockhdr.GetBlockTime() - GetAdjustedTime()); //LogPrintf("CheckBlockHeader block from future %d error",blockhdr.GetBlockTime() - GetTime());
return false; return false;
} }
} }
else if (blockhdr.GetBlockTime() > GetAdjustedTime() + 60) else if (blockhdr.GetBlockTime() > GetTime() + 60)
{ {
/*CBlockIndex *tipindex; /*CBlockIndex *tipindex;
//fprintf(stderr,"ht.%d future block %u vs time.%u + 60\n",height,(uint32_t)blockhdr.GetBlockTime(),(uint32_t)GetAdjustedTime()); //fprintf(stderr,"ht.%d future block %u vs time.%u + 60\n",height,(uint32_t)blockhdr.GetBlockTime(),(uint32_t)GetTime());
if ( (tipindex= chainActive.Tip()) != 0 && tipindex->GetBlockHash() == blockhdr.hashPrevBlock && blockhdr.GetBlockTime() < GetAdjustedTime() + 60 + 5 ) if ( (tipindex= chainActive.Tip()) != 0 && tipindex->GetBlockHash() == blockhdr.hashPrevBlock && blockhdr.GetBlockTime() < GetTime() + 60 + 5 )
{ {
//fprintf(stderr,"it is the next block, let's wait for %d seconds\n",GetAdjustedTime() + 60 - blockhdr.GetBlockTime()); //fprintf(stderr,"it is the next block, let's wait for %d seconds\n",GetTime() + 60 - blockhdr.GetBlockTime());
while ( blockhdr.GetBlockTime() > GetAdjustedTime() + 60 ) while ( blockhdr.GetBlockTime() > GetTime() + 60 )
sleep(1); sleep(1);
//fprintf(stderr,"now its valid\n"); //fprintf(stderr,"now its valid\n");
} }
else*/ else*/
{ {
if (blockhdr.GetBlockTime() < GetAdjustedTime() + 300) if (blockhdr.GetBlockTime() < GetTime() + 300)
*futureblockp = 1; *futureblockp = 1;
//LogPrintf("CheckBlockHeader block from future %d error",blockhdr.GetBlockTime() - GetAdjustedTime()); //LogPrintf("CheckBlockHeader block from future %d error",blockhdr.GetBlockTime() - GetTime());
return false; //state.Invalid(error("CheckBlockHeader(): block timestamp too far in the future"),REJECT_INVALID, "time-too-new"); return false; //state.Invalid(error("CheckBlockHeader(): block timestamp too far in the future"),REJECT_INVALID, "time-too-new");
} }
} }
@@ -5388,7 +5388,7 @@ bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& sta
} }
// Check that timestamp is not too far in the future // Check that timestamp is not too far in the future
if (block.GetBlockTime() > GetAdjustedTime() + consensusParams.nMaxFutureBlockTime) if (block.GetBlockTime() > GetTime() + consensusParams.nMaxFutureBlockTime)
{ {
return state.Invalid(error("%s: block timestamp too far in the future", __func__), return state.Invalid(error("%s: block timestamp too far in the future", __func__),
REJECT_INVALID, "time-too-new"); REJECT_INVALID, "time-too-new");
@@ -7406,9 +7406,10 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
pfrom->nStartingHeight, addrMe.ToString(), pfrom->id, pfrom->nStartingHeight, addrMe.ToString(), pfrom->id,
remoteAddr); remoteAddr);
int64_t nTimeOffset = nTime - GetTime(); //int64_t nTimeOffset = nTime - GetTime();
pfrom->nTimeOffset = nTimeOffset; //pfrom->nTimeOffset = nTimeOffset;
AddTimeData(pfrom->addr, nTimeOffset); //AddTimeData(pfrom->addr, nTimeOffset);
pfrom->nTimeOffset = timeWarning.AddTimeData(pfrom->addr, nTime, GetTime());
} }
@@ -7484,7 +7485,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
// Store the new addresses // Store the new addresses
vector<CAddress> vAddrOk; vector<CAddress> vAddrOk;
int64_t nNow = GetAdjustedTime(); int64_t nNow = GetTime();
int64_t nSince = nNow - 10 * 60; int64_t nSince = nNow - 10 * 60;
BOOST_FOREACH(CAddress& addr, vAddr) BOOST_FOREACH(CAddress& addr, vAddr)
{ {
@@ -7694,7 +7695,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
// not a direct successor. // not a direct successor.
pfrom->PushMessage("getheaders", chainActive.GetLocator(pindexBestHeader), inv.hash); pfrom->PushMessage("getheaders", chainActive.GetLocator(pindexBestHeader), inv.hash);
CNodeState *nodestate = State(pfrom->GetId()); CNodeState *nodestate = State(pfrom->GetId());
if (chainActive.Tip()->GetBlockTime() > GetAdjustedTime() - chainparams.GetConsensus().nPowTargetSpacing * 20 && if (chainActive.Tip()->GetBlockTime() > GetTime() - chainparams.GetConsensus().nPowTargetSpacing * 20 &&
nodestate->nBlocksInFlight < MAX_BLOCKS_IN_TRANSIT_PER_PEER) { nodestate->nBlocksInFlight < MAX_BLOCKS_IN_TRANSIT_PER_PEER) {
vToFetch.push_back(inv); vToFetch.push_back(inv);
// Mark block as in flight already, even though the actual "getdata" message only goes out // Mark block as in flight already, even though the actual "getdata" message only goes out
@@ -8457,7 +8458,7 @@ bool SendMessages(CNode* pto, bool fSendTrickle)
bool fFetch = state.fPreferredDownload || (nPreferredDownload == 0 && !pto->fClient && !pto->fOneShot); // Download if this is a nice peer, or we have no nice peers and this one might do. bool fFetch = state.fPreferredDownload || (nPreferredDownload == 0 && !pto->fClient && !pto->fOneShot); // Download if this is a nice peer, or we have no nice peers and this one might do.
if (!state.fSyncStarted && !pto->fClient && !fImporting && !fReindex && pindexBestHeader!=0) { if (!state.fSyncStarted && !pto->fClient && !fImporting && !fReindex && pindexBestHeader!=0) {
// Only actively request headers from a single peer, unless we're close to today. // Only actively request headers from a single peer, unless we're close to today.
if ((nSyncStarted == 0 && fFetch) || pindexBestHeader->GetBlockTime() > GetAdjustedTime() - 24 * 60 * 60) { if ((nSyncStarted == 0 && fFetch) || pindexBestHeader->GetBlockTime() > GetTime() - 24 * 60 * 60) {
state.fSyncStarted = true; state.fSyncStarted = true;
nSyncStarted++; nSyncStarted++;
CBlockIndex *pindexStart = pindexBestHeader->pprev ? pindexBestHeader->pprev : pindexBestHeader; CBlockIndex *pindexStart = pindexBestHeader->pprev ? pindexBestHeader->pprev : pindexBestHeader;

View File

@@ -1,8 +1,8 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2014 The Bitcoin Core developers // Copyright (c) 2009-2014 The Bitcoin Core developers
// Copyright (c) 2019 The Hush developers // Copyright (c) 2019-2020 The Hush developers
// Distributed under the MIT software license, see the accompanying // Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php. // file COPYING or https://www.opensource.org/licenses/mit-license.php
/****************************************************************************** /******************************************************************************
* Copyright © 2014-2019 The SuperNET Developers. * * Copyright © 2014-2019 The SuperNET Developers. *
@@ -126,8 +126,8 @@ extern int8_t ASSETCHAINS_ADAPTIVEPOW;
void UpdateTime(CBlockHeader* pblock, const Consensus::Params& consensusParams, const CBlockIndex* pindexPrev) void UpdateTime(CBlockHeader* pblock, const Consensus::Params& consensusParams, const CBlockIndex* pindexPrev)
{ {
if ( ASSETCHAINS_ADAPTIVEPOW <= 0 ) if ( ASSETCHAINS_ADAPTIVEPOW <= 0 )
pblock->nTime = std::max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime()); pblock->nTime = std::max(pindexPrev->GetMedianTimePast()+1, GetTime());
else pblock->nTime = std::max((int64_t)(pindexPrev->nTime+1), GetAdjustedTime()); else pblock->nTime = std::max((int64_t)(pindexPrev->nTime+1), GetTime());
// Updating time can change work required on testnet: // Updating time can change work required on testnet:
if (ASSETCHAINS_ADAPTIVEPOW > 0 || consensusParams.nPowAllowMinDifficultyBlocksAfterHeight != boost::none) if (ASSETCHAINS_ADAPTIVEPOW > 0 || consensusParams.nPowAllowMinDifficultyBlocksAfterHeight != boost::none)
@@ -239,7 +239,7 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32
bool sapling = NetworkUpgradeActive(nHeight, consensusParams, Consensus::UPGRADE_SAPLING); bool sapling = NetworkUpgradeActive(nHeight, consensusParams, Consensus::UPGRADE_SAPLING);
const int64_t nMedianTimePast = pindexPrev->GetMedianTimePast(); const int64_t nMedianTimePast = pindexPrev->GetMedianTimePast();
uint32_t proposedTime = GetAdjustedTime(); uint32_t proposedTime = GetTime();
voutsum = GetBlockSubsidy(nHeight,consensusParams) + 10000*COIN; // approx fees voutsum = GetBlockSubsidy(nHeight,consensusParams) + 10000*COIN; // approx fees
if (proposedTime == nMedianTimePast) if (proposedTime == nMedianTimePast)
@@ -248,12 +248,12 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32
// forward as quickly as possible // forward as quickly as possible
for (int i; i < 100; i++) for (int i; i < 100; i++)
{ {
proposedTime = GetAdjustedTime(); proposedTime = GetTime();
if (proposedTime == nMedianTimePast) if (proposedTime == nMedianTimePast)
MilliSleep(10); MilliSleep(10);
} }
} }
pblock->nTime = GetAdjustedTime(); pblock->nTime = GetTime();
// Now we have the block time + height, we can get the active notaries. // Now we have the block time + height, we can get the active notaries.
int8_t numSN = 0; uint8_t notarypubkeys[64][33] = {0}; int8_t numSN = 0; uint8_t notarypubkeys[64][33] = {0};
if ( ASSETCHAINS_NOTARY_PAY[0] != 0 ) if ( ASSETCHAINS_NOTARY_PAY[0] != 0 )
@@ -603,8 +603,8 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32
nLastBlockTx = nBlockTx; nLastBlockTx = nBlockTx;
nLastBlockSize = nBlockSize; nLastBlockSize = nBlockSize;
if ( ASSETCHAINS_ADAPTIVEPOW <= 0 ) if ( ASSETCHAINS_ADAPTIVEPOW <= 0 )
blocktime = 1 + std::max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime()); blocktime = 1 + std::max(pindexPrev->GetMedianTimePast()+1, GetTime());
else blocktime = 1 + std::max((int64_t)(pindexPrev->nTime+1), GetAdjustedTime()); else blocktime = 1 + std::max((int64_t)(pindexPrev->nTime+1), GetTime());
//pblock->nTime = blocktime + 1; //pblock->nTime = blocktime + 1;
pblock->nBits = GetNextWorkRequired(pindexPrev, pblock, Params().GetConsensus()); pblock->nBits = GetNextWorkRequired(pindexPrev, pblock, Params().GetConsensus());
@@ -624,8 +624,8 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32
//fprintf(stderr,"mine ht.%d with %.8f\n",nHeight,(double)txNew.vout[0].nValue/COIN); //fprintf(stderr,"mine ht.%d with %.8f\n",nHeight,(double)txNew.vout[0].nValue/COIN);
txNew.nExpiryHeight = 0; txNew.nExpiryHeight = 0;
if ( ASSETCHAINS_ADAPTIVEPOW <= 0 ) if ( ASSETCHAINS_ADAPTIVEPOW <= 0 )
txNew.nLockTime = std::max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime()); txNew.nLockTime = std::max(pindexPrev->GetMedianTimePast()+1, GetTime());
else txNew.nLockTime = std::max((int64_t)(pindexPrev->nTime+1), GetAdjustedTime()); else txNew.nLockTime = std::max((int64_t)(pindexPrev->nTime+1), GetTime());
if ( ASSETCHAINS_SYMBOL[0] == 0 && IS_KOMODO_NOTARY != 0 && My_notaryid >= 0 ) if ( ASSETCHAINS_SYMBOL[0] == 0 && IS_KOMODO_NOTARY != 0 && My_notaryid >= 0 )
@@ -1368,10 +1368,10 @@ void static BitcoinMiner()
// MilliSleep(30); // MilliSleep(30);
return false; return false;
} }
if ( IS_KOMODO_NOTARY != 0 && B.nTime > GetAdjustedTime() ) if ( IS_KOMODO_NOTARY != 0 && B.nTime > GetTime() )
{ {
//fprintf(stderr,"need to wait %d seconds to submit block\n",(int32_t)(B.nTime - GetAdjustedTime())); //fprintf(stderr,"need to wait %d seconds to submit block\n",(int32_t)(B.nTime - GetTime()));
while ( GetAdjustedTime() < B.nTime-2 ) while ( GetTime() < B.nTime-2 )
{ {
sleep(1); sleep(1);
if ( chainActive.LastTip()->GetHeight() >= Mining_height ) if ( chainActive.LastTip()->GetHeight() >= Mining_height )

View File

@@ -1,6 +1,6 @@
// Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2010 Satoshi Nakamoto
// Copyright (c) 2009-2014 The Bitcoin Core developers // Copyright (c) 2009-2014 The Bitcoin Core developers
// Copyright (c) 2019 The Hush developers // Copyright (c) 2019-2020 The Hush developers
// Distributed under the MIT software license, see the accompanying // Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php. // file COPYING or http://www.opensource.org/licenses/mit-license.php.
@@ -193,7 +193,7 @@ CAddress GetLocalAddress(const CNetAddr *paddrPeer)
ret = CAddress(addr); ret = CAddress(addr);
} }
ret.nServices = nLocalServices; ret.nServices = nLocalServices;
ret.nTime = GetAdjustedTime(); ret.nTime = GetTime();
return ret; return ret;
} }
@@ -393,7 +393,7 @@ CNode* ConnectNode(CAddress addrConnect, const char *pszDest)
/// debug print /// debug print
LogPrint("net", "trying connection %s lastseen=%.1fhrs\n", LogPrint("net", "trying connection %s lastseen=%.1fhrs\n",
pszDest ? pszDest : addrConnect.ToString(), pszDest ? pszDest : addrConnect.ToString(),
pszDest ? 0.0 : (double)(GetAdjustedTime() - addrConnect.nTime)/3600.0); pszDest ? 0.0 : (double)(GetTime() - addrConnect.nTime)/3600.0);
// Connect // Connect
SOCKET hSocket; SOCKET hSocket;
@@ -458,7 +458,7 @@ void CNode::PushVersion()
{ {
int nBestHeight = g_signals.GetHeight().get_value_or(0); int nBestHeight = g_signals.GetHeight().get_value_or(0);
int64_t nTime = (fInbound ? GetAdjustedTime() : GetTime()); int64_t nTime = (fInbound ? GetTime() : GetTime());
CAddress addrYou = (addr.IsRoutable() && !IsProxy(addr) ? addr : CAddress(CService("0.0.0.0",0))); CAddress addrYou = (addr.IsRoutable() && !IsProxy(addr) ? addr : CAddress(CService("0.0.0.0",0)));
CAddress addrMe = GetLocalAddress(&addr); CAddress addrMe = GetLocalAddress(&addr);
GetRandBytes((unsigned char*)&nLocalHostNonce, sizeof(nLocalHostNonce)); GetRandBytes((unsigned char*)&nLocalHostNonce, sizeof(nLocalHostNonce));
@@ -1429,7 +1429,7 @@ void ThreadOpenConnections()
} }
} }
int64_t nANow = GetAdjustedTime(); int64_t nANow = GetTime();
int nTries = 0; int nTries = 0;
while (true) while (true)

View File

@@ -206,7 +206,7 @@ UniValue getinfo(const UniValue& params, bool fHelp, const CPubKey& mypk)
" \"walletversion\": xxxxx, (numeric) the wallet version\n" " \"walletversion\": xxxxx, (numeric) the wallet version\n"
" \"balance\": xxxxxxx, (numeric) the total Hush balance of the wallet\n" " \"balance\": xxxxxxx, (numeric) the total Hush balance of the wallet\n"
" \"blocks\": xxxxxx, (numeric) the current number of blocks processed in the server\n" " \"blocks\": xxxxxx, (numeric) the current number of blocks processed in the server\n"
" \"timeoffset\": xxxxx, (numeric) the time offset\n" " \"timeoffset\": xxxxx, (numeric) the time offset (deprecated, always 0)\n"
" \"connections\": xxxxx, (numeric) the number of connections\n" " \"connections\": xxxxx, (numeric) the number of connections\n"
" \"proxy\": \"host:port\", (string, optional) the proxy used by the server\n" " \"proxy\": \"host:port\", (string, optional) the proxy used by the server\n"
" \"difficulty\": xxxxxx, (numeric) the current difficulty\n" " \"difficulty\": xxxxxx, (numeric) the current difficulty\n"
@@ -286,7 +286,7 @@ UniValue getinfo(const UniValue& params, bool fHelp, const CPubKey& mypk)
#endif #endif
obj.push_back(Pair("sapling", ASSETCHAINS_SAPLING)); obj.push_back(Pair("sapling", ASSETCHAINS_SAPLING));
} }
obj.push_back(Pair("timeoffset", GetTimeOffset())); obj.push_back(Pair("timeoffset", 0));
obj.push_back(Pair("connections", (int)vNodes.size())); obj.push_back(Pair("connections", (int)vNodes.size()));
obj.push_back(Pair("proxy", (proxy.IsValid() ? proxy.proxy.ToStringIPPort() : string()))); obj.push_back(Pair("proxy", (proxy.IsValid() ? proxy.proxy.ToStringIPPort() : string())));
obj.push_back(Pair("testnet", Params().TestnetToBeDeprecatedFieldRPC())); obj.push_back(Pair("testnet", Params().TestnetToBeDeprecatedFieldRPC()));

View File

@@ -1,6 +1,7 @@
// Copyright (c) 2009-2014 The Bitcoin Core developers // Copyright (c) 2009-2014 The Bitcoin Core developers
// Copyright (c) 2019-2020 The Hush developers
// Distributed under the MIT software license, see the accompanying // Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php. // file COPYING or https://www.opensource.org/licenses/mit-license.php
/****************************************************************************** /******************************************************************************
* Copyright © 2014-2019 The SuperNET Developers. * * Copyright © 2014-2019 The SuperNET Developers. *
@@ -108,7 +109,7 @@ UniValue getpeerinfo(const UniValue& params, bool fHelp, const CPubKey& mypk)
" \"bytessent\": n, (numeric) The total bytes sent\n" " \"bytessent\": n, (numeric) The total bytes sent\n"
" \"bytesrecv\": n, (numeric) The total bytes received\n" " \"bytesrecv\": n, (numeric) The total bytes received\n"
" \"conntime\": ttt, (numeric) The connection time in seconds since epoch (Jan 1 1970 GMT)\n" " \"conntime\": ttt, (numeric) The connection time in seconds since epoch (Jan 1 1970 GMT)\n"
" \"timeoffset\": ttt, (numeric) The time offset in seconds\n" " \"timeoffset\": ttt, (numeric) The time offset in seconds (deprecated, always 0)\n"
" \"pingtime\": n, (numeric) ping time\n" " \"pingtime\": n, (numeric) ping time\n"
" \"pingwait\": n, (numeric) ping wait\n" " \"pingwait\": n, (numeric) ping wait\n"
" \"version\": v, (numeric) The peer version, such as 170002\n" " \"version\": v, (numeric) The peer version, such as 170002\n"
@@ -151,7 +152,7 @@ UniValue getpeerinfo(const UniValue& params, bool fHelp, const CPubKey& mypk)
obj.push_back(Pair("bytessent", stats.nSendBytes)); obj.push_back(Pair("bytessent", stats.nSendBytes));
obj.push_back(Pair("bytesrecv", stats.nRecvBytes)); obj.push_back(Pair("bytesrecv", stats.nRecvBytes));
obj.push_back(Pair("conntime", stats.nTimeConnected)); obj.push_back(Pair("conntime", stats.nTimeConnected));
obj.push_back(Pair("timeoffset", stats.nTimeOffset)); obj.push_back(Pair("timeoffset", 0));
obj.push_back(Pair("pingtime", stats.dPingTime)); obj.push_back(Pair("pingtime", stats.dPingTime));
if (stats.dPingWait > 0.0) if (stats.dPingWait > 0.0)
obj.push_back(Pair("pingwait", stats.dPingWait)); obj.push_back(Pair("pingwait", stats.dPingWait));
@@ -502,7 +503,7 @@ UniValue getnetworkinfo(const UniValue& params, bool fHelp, const CPubKey& mypk)
" \"subversion\": \"/MagicBean:x.y.z[-v]/\", (string) the server subversion string\n" " \"subversion\": \"/MagicBean:x.y.z[-v]/\", (string) the server subversion string\n"
" \"protocolversion\": xxxxx, (numeric) the protocol version\n" " \"protocolversion\": xxxxx, (numeric) the protocol version\n"
" \"localservices\": \"xxxxxxxxxxxxxxxx\", (string) the services we offer to the network\n" " \"localservices\": \"xxxxxxxxxxxxxxxx\", (string) the services we offer to the network\n"
" \"timeoffset\": xxxxx, (numeric) the time offset\n" " \"timeoffset\": xxxxx, (numeric) the time offset (deprecated, always 0)\n"
" \"connections\": xxxxx, (numeric) the number of connections\n" " \"connections\": xxxxx, (numeric) the number of connections\n"
" \"networks\": [ (array) information per network\n" " \"networks\": [ (array) information per network\n"
" {\n" " {\n"
@@ -536,7 +537,7 @@ UniValue getnetworkinfo(const UniValue& params, bool fHelp, const CPubKey& mypk)
obj.push_back(Pair("subversion", strSubVersion)); obj.push_back(Pair("subversion", strSubVersion));
obj.push_back(Pair("protocolversion",PROTOCOL_VERSION)); obj.push_back(Pair("protocolversion",PROTOCOL_VERSION));
obj.push_back(Pair("localservices", strprintf("%016x", nLocalServices))); obj.push_back(Pair("localservices", strprintf("%016x", nLocalServices)));
obj.push_back(Pair("timeoffset", GetTimeOffset())); obj.push_back(Pair("timeoffset", 0));
obj.push_back(Pair("connections", (int)vNodes.size())); obj.push_back(Pair("connections", (int)vNodes.size()));
obj.push_back(Pair("networks", GetNetworksInfo())); obj.push_back(Pair("networks", GetNetworksInfo()));
obj.push_back(Pair("relayfee", ValueFromAmount(::minRelayTxFee.GetFeePerK()))); obj.push_back(Pair("relayfee", ValueFromAmount(::minRelayTxFee.GetFeePerK())));

View File

@@ -345,15 +345,15 @@ BOOST_AUTO_TEST_CASE(addrman_getaddr)
BOOST_CHECK(vAddr1.size() == 0); BOOST_CHECK(vAddr1.size() == 0);
CAddress addr1 = CAddress(CService("250.250.2.1", 8333)); CAddress addr1 = CAddress(CService("250.250.2.1", 8333));
addr1.nTime = GetAdjustedTime(); // Set time so isTerrible = false addr1.nTime = GetTime(); // Set time so isTerrible = false
CAddress addr2 = CAddress(CService("250.251.2.2", 9999)); CAddress addr2 = CAddress(CService("250.251.2.2", 9999));
addr2.nTime = GetAdjustedTime(); addr2.nTime = GetTime();
CAddress addr3 = CAddress(CService("251.252.2.3", 8333)); CAddress addr3 = CAddress(CService("251.252.2.3", 8333));
addr3.nTime = GetAdjustedTime(); addr3.nTime = GetTime();
CAddress addr4 = CAddress(CService("252.253.3.4", 8333)); CAddress addr4 = CAddress(CService("252.253.3.4", 8333));
addr4.nTime = GetAdjustedTime(); addr4.nTime = GetTime();
CAddress addr5 = CAddress(CService("252.254.4.5", 8333)); CAddress addr5 = CAddress(CService("252.254.4.5", 8333));
addr5.nTime = GetAdjustedTime(); addr5.nTime = GetTime();
CNetAddr source1 = CNetAddr("250.1.2.1"); CNetAddr source1 = CNetAddr("250.1.2.1");
CNetAddr source2 = CNetAddr("250.2.3.3"); CNetAddr source2 = CNetAddr("250.2.3.3");
@@ -381,7 +381,7 @@ BOOST_AUTO_TEST_CASE(addrman_getaddr)
CAddress addr = CAddress(CService(strAddr)); CAddress addr = CAddress(CService(strAddr));
// Ensure that for all addrs in addrman, isTerrible == false. // Ensure that for all addrs in addrman, isTerrible == false.
addr.nTime = GetAdjustedTime(); addr.nTime = GetTime();
addrman.Add(addr, CNetAddr(strAddr)); addrman.Add(addr, CNetAddr(strAddr));
if (i % 8 == 0) if (i % 8 == 0)
addrman.Good(addr); addrman.Good(addr);

View File

@@ -1345,7 +1345,7 @@ UniValue movecmd(const UniValue& params, bool fHelp, const CPubKey& mypk)
if (!walletdb.TxnBegin()) if (!walletdb.TxnBegin())
throw JSONRPCError(RPC_DATABASE_ERROR, "database error"); throw JSONRPCError(RPC_DATABASE_ERROR, "database error");
int64_t nNow = GetAdjustedTime(); int64_t nNow = GetTime();
// Debit // Debit
CAccountingEntry debit; CAccountingEntry debit;

View File

@@ -472,12 +472,13 @@ void CWallet::ChainTip(const CBlockIndex *pindex,
boost::optional<std::pair<SproutMerkleTree, SaplingMerkleTree>> added) boost::optional<std::pair<SproutMerkleTree, SaplingMerkleTree>> added)
{ {
if (added) { if (added) {
// Prevent witness cache building && consolidation transactions bool initialDownloadCheck = IsInitialBlockDownload();
// Prevent witness cache building && consolidation transactions
// from being created when node is syncing after launch, // from being created when node is syncing after launch,
// and also when node wakes up from suspension/hibernation and incoming blocks are old. // and also when node wakes up from suspension/hibernation and incoming blocks are old.
bool initialDownloadCheck = IsInitialBlockDownload(); // 144 blocks = 3hrs @ 75s blocktime
if (!initialDownloadCheck && if (!initialDownloadCheck &&
pblock->GetBlockTime() > GetAdjustedTime() - 8640) //Last 144 blocks 2.4 * 60 * 60 pblock->GetBlockTime() > GetTime() - 144*ASSETCHAINS_BLOCKTIME)
{ {
BuildWitnessCache(pindex, false); BuildWitnessCache(pindex, false);
RunSaplingConsolidation(pindex->GetHeight()); RunSaplingConsolidation(pindex->GetHeight());
@@ -1373,10 +1374,9 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn, bool fFromLoadWallet, CWalletD
bool fInsertedNew = ret.second; bool fInsertedNew = ret.second;
if (fInsertedNew) if (fInsertedNew)
{ {
wtx.nTimeReceived = GetAdjustedTime(); wtx.nTimeReceived = GetTime();
wtx.nOrderPos = IncOrderPosNext(pwalletdb); wtx.nOrderPos = IncOrderPosNext(pwalletdb);
wtx.nTimeSmart = wtx.nTimeReceived;
wtx.nTimeSmart = wtx.nTimeReceived;
if (!wtxIn.hashBlock.IsNull()) if (!wtxIn.hashBlock.IsNull())
{ {
if (mapBlockIndex.count(wtxIn.hashBlock)) if (mapBlockIndex.count(wtxIn.hashBlock))
@@ -1385,7 +1385,6 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn, bool fFromLoadWallet, CWalletD
int64_t latestEntry = 0; int64_t latestEntry = 0;
{ {
// Tolerate times up to the last timestamp in the wallet not more than 5 minutes into the future // Tolerate times up to the last timestamp in the wallet not more than 5 minutes into the future
// TODO: this is 2 blocktimes, which will become 150?
int64_t latestTolerated = latestNow + 300; int64_t latestTolerated = latestNow + 300;
std::list<CAccountingEntry> acentries; std::list<CAccountingEntry> acentries;
TxItems txOrdered = OrderedTxItems(acentries); TxItems txOrdered = OrderedTxItems(acentries);