More timedate changes from KMD 0.6
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
// Copyright (c) 2012 Pieter Wuille
|
||||
// Copyright (c) 2019-2020 The Hush developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// 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) {
|
||||
// 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);
|
||||
if (addr.nTime && (!pinfo->nTime || pinfo->nTime < addr.nTime - nUpdateInterval - nTimePenalty))
|
||||
pinfo->nTime = std::max((int64_t)0, addr.nTime - nTimePenalty);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// Copyright (c) 2012 Pieter Wuille
|
||||
// Copyright (c) 2019-2020 The Hush developers
|
||||
// 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. *
|
||||
@@ -112,10 +113,10 @@ public:
|
||||
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
|
||||
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
|
||||
double GetChance(int64_t nNow = GetAdjustedTime()) const;
|
||||
double GetChance(int64_t nNow = GetTime()) const;
|
||||
|
||||
};
|
||||
|
||||
@@ -530,7 +531,7 @@ public:
|
||||
}
|
||||
|
||||
//! 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);
|
||||
@@ -541,7 +542,7 @@ public:
|
||||
}
|
||||
|
||||
//! 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);
|
||||
@@ -580,7 +581,7 @@ public:
|
||||
}
|
||||
|
||||
//! 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);
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
// Copyright (c) 2010 Satoshi Nakamoto
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2019-2020 The Hush developers
|
||||
// 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. *
|
||||
@@ -117,7 +118,7 @@ uint256 CAlert::GetHash() const
|
||||
|
||||
bool CAlert::IsInEffect() const
|
||||
{
|
||||
return (GetAdjustedTime() < nExpiration);
|
||||
return (GetTime() < nExpiration);
|
||||
}
|
||||
|
||||
bool CAlert::Cancels(const CAlert& alert) const
|
||||
@@ -152,7 +153,7 @@ bool CAlert::RelayTo(CNode* pnode) const
|
||||
{
|
||||
if (AppliesTo(pnode->nVersion, pnode->strSubVer) ||
|
||||
AppliesToMe() ||
|
||||
GetAdjustedTime() < nRelayUntil)
|
||||
GetTime() < nRelayUntil)
|
||||
{
|
||||
pnode->PushMessage("alert", *this);
|
||||
return true;
|
||||
|
||||
@@ -1535,8 +1535,8 @@ uint32_t komodo_stake(int32_t validateflag,arith_uint256 bnTarget,int32_t nHeigh
|
||||
//fprintf(stderr,"blocktime.%u -> ",blocktime);
|
||||
if ( blocktime < prevtime+3 )
|
||||
blocktime = prevtime+3;
|
||||
if ( blocktime < GetAdjustedTime()-60 )
|
||||
blocktime = GetAdjustedTime()+30;
|
||||
if ( blocktime < GetTime()-60 )
|
||||
blocktime = GetTime()+30;
|
||||
//fprintf(stderr,"blocktime.%u txtime.%u\n",blocktime,txtime);
|
||||
}
|
||||
if ( value == 0 || txtime == 0 || blocktime == 0 || prevtime == 0 )
|
||||
|
||||
39
src/main.cpp
39
src/main.cpp
@@ -1000,7 +1000,7 @@ bool CheckFinalTx(const CTransaction &tx, int flags)
|
||||
// However this changes once median past time-locks are enforced:
|
||||
const int64_t nBlockTime = (flags & LOCKTIME_MEDIAN_TIME_PAST)
|
||||
? chainActive.Tip()->GetMedianTimePast()
|
||||
: GetAdjustedTime();
|
||||
: GetTime();
|
||||
|
||||
return IsFinalTx(tx, nBlockHeight, nBlockTime);
|
||||
}
|
||||
@@ -3297,7 +3297,7 @@ void PartitionCheck(bool (*initialDownloadCheck)(), CCriticalSection& cs, const
|
||||
if (bestHeader == NULL || initialDownloadCheck()) return;
|
||||
|
||||
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
|
||||
|
||||
const int SPAN_HOURS=4;
|
||||
@@ -3307,7 +3307,7 @@ void PartitionCheck(bool (*initialDownloadCheck)(), CCriticalSection& cs, const
|
||||
boost::math::poisson_distribution<double> poisson(BLOCKS_EXPECTED);
|
||||
|
||||
std::string strWarning;
|
||||
int64_t startTime = GetAdjustedTime()-SPAN_SECONDS;
|
||||
int64_t startTime = GetTime()-SPAN_SECONDS;
|
||||
|
||||
LOCK(cs);
|
||||
const CBlockIndex* i = bestHeader;
|
||||
@@ -5119,28 +5119,28 @@ bool CheckBlockHeader(int32_t *futureblockp,int32_t height,CBlockIndex *pindex,
|
||||
*futureblockp = 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;
|
||||
}
|
||||
}
|
||||
else if (blockhdr.GetBlockTime() > GetAdjustedTime() + 60)
|
||||
else if (blockhdr.GetBlockTime() > GetTime() + 60)
|
||||
{
|
||||
/*CBlockIndex *tipindex;
|
||||
//fprintf(stderr,"ht.%d future block %u vs time.%u + 60\n",height,(uint32_t)blockhdr.GetBlockTime(),(uint32_t)GetAdjustedTime());
|
||||
if ( (tipindex= chainActive.Tip()) != 0 && tipindex->GetBlockHash() == blockhdr.hashPrevBlock && blockhdr.GetBlockTime() < GetAdjustedTime() + 60 + 5 )
|
||||
//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() < GetTime() + 60 + 5 )
|
||||
{
|
||||
//fprintf(stderr,"it is the next block, let's wait for %d seconds\n",GetAdjustedTime() + 60 - blockhdr.GetBlockTime());
|
||||
while ( blockhdr.GetBlockTime() > GetAdjustedTime() + 60 )
|
||||
//fprintf(stderr,"it is the next block, let's wait for %d seconds\n",GetTime() + 60 - blockhdr.GetBlockTime());
|
||||
while ( blockhdr.GetBlockTime() > GetTime() + 60 )
|
||||
sleep(1);
|
||||
//fprintf(stderr,"now its valid\n");
|
||||
}
|
||||
else*/
|
||||
{
|
||||
if (blockhdr.GetBlockTime() < GetAdjustedTime() + 300)
|
||||
if (blockhdr.GetBlockTime() < GetTime() + 300)
|
||||
*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");
|
||||
}
|
||||
}
|
||||
@@ -5388,7 +5388,7 @@ bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& sta
|
||||
}
|
||||
|
||||
// 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__),
|
||||
REJECT_INVALID, "time-too-new");
|
||||
@@ -7406,9 +7406,10 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
|
||||
pfrom->nStartingHeight, addrMe.ToString(), pfrom->id,
|
||||
remoteAddr);
|
||||
|
||||
int64_t nTimeOffset = nTime - GetTime();
|
||||
pfrom->nTimeOffset = nTimeOffset;
|
||||
AddTimeData(pfrom->addr, nTimeOffset);
|
||||
//int64_t nTimeOffset = nTime - GetTime();
|
||||
//pfrom->nTimeOffset = 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
|
||||
vector<CAddress> vAddrOk;
|
||||
int64_t nNow = GetAdjustedTime();
|
||||
int64_t nNow = GetTime();
|
||||
int64_t nSince = nNow - 10 * 60;
|
||||
BOOST_FOREACH(CAddress& addr, vAddr)
|
||||
{
|
||||
@@ -7694,7 +7695,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
|
||||
// not a direct successor.
|
||||
pfrom->PushMessage("getheaders", chainActive.GetLocator(pindexBestHeader), inv.hash);
|
||||
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) {
|
||||
vToFetch.push_back(inv);
|
||||
// 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.
|
||||
if (!state.fSyncStarted && !pto->fClient && !fImporting && !fReindex && pindexBestHeader!=0) {
|
||||
// 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;
|
||||
nSyncStarted++;
|
||||
CBlockIndex *pindexStart = pindexBestHeader->pprev ? pindexBestHeader->pprev : pindexBestHeader;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// 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
|
||||
// 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. *
|
||||
@@ -126,8 +126,8 @@ extern int8_t ASSETCHAINS_ADAPTIVEPOW;
|
||||
void UpdateTime(CBlockHeader* pblock, const Consensus::Params& consensusParams, const CBlockIndex* pindexPrev)
|
||||
{
|
||||
if ( ASSETCHAINS_ADAPTIVEPOW <= 0 )
|
||||
pblock->nTime = std::max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime());
|
||||
else pblock->nTime = std::max((int64_t)(pindexPrev->nTime+1), GetAdjustedTime());
|
||||
pblock->nTime = std::max(pindexPrev->GetMedianTimePast()+1, GetTime());
|
||||
else pblock->nTime = std::max((int64_t)(pindexPrev->nTime+1), GetTime());
|
||||
|
||||
// Updating time can change work required on testnet:
|
||||
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);
|
||||
|
||||
const int64_t nMedianTimePast = pindexPrev->GetMedianTimePast();
|
||||
uint32_t proposedTime = GetAdjustedTime();
|
||||
uint32_t proposedTime = GetTime();
|
||||
voutsum = GetBlockSubsidy(nHeight,consensusParams) + 10000*COIN; // approx fees
|
||||
|
||||
if (proposedTime == nMedianTimePast)
|
||||
@@ -248,12 +248,12 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32
|
||||
// forward as quickly as possible
|
||||
for (int i; i < 100; i++)
|
||||
{
|
||||
proposedTime = GetAdjustedTime();
|
||||
proposedTime = GetTime();
|
||||
if (proposedTime == nMedianTimePast)
|
||||
MilliSleep(10);
|
||||
}
|
||||
}
|
||||
pblock->nTime = GetAdjustedTime();
|
||||
pblock->nTime = GetTime();
|
||||
// Now we have the block time + height, we can get the active notaries.
|
||||
int8_t numSN = 0; uint8_t notarypubkeys[64][33] = {0};
|
||||
if ( ASSETCHAINS_NOTARY_PAY[0] != 0 )
|
||||
@@ -603,8 +603,8 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32
|
||||
nLastBlockTx = nBlockTx;
|
||||
nLastBlockSize = nBlockSize;
|
||||
if ( ASSETCHAINS_ADAPTIVEPOW <= 0 )
|
||||
blocktime = 1 + std::max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime());
|
||||
else blocktime = 1 + std::max((int64_t)(pindexPrev->nTime+1), GetAdjustedTime());
|
||||
blocktime = 1 + std::max(pindexPrev->GetMedianTimePast()+1, GetTime());
|
||||
else blocktime = 1 + std::max((int64_t)(pindexPrev->nTime+1), GetTime());
|
||||
//pblock->nTime = blocktime + 1;
|
||||
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);
|
||||
txNew.nExpiryHeight = 0;
|
||||
if ( ASSETCHAINS_ADAPTIVEPOW <= 0 )
|
||||
txNew.nLockTime = std::max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime());
|
||||
else txNew.nLockTime = std::max((int64_t)(pindexPrev->nTime+1), GetAdjustedTime());
|
||||
txNew.nLockTime = std::max(pindexPrev->GetMedianTimePast()+1, GetTime());
|
||||
else txNew.nLockTime = std::max((int64_t)(pindexPrev->nTime+1), GetTime());
|
||||
|
||||
|
||||
if ( ASSETCHAINS_SYMBOL[0] == 0 && IS_KOMODO_NOTARY != 0 && My_notaryid >= 0 )
|
||||
@@ -1368,10 +1368,10 @@ void static BitcoinMiner()
|
||||
// MilliSleep(30);
|
||||
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()));
|
||||
while ( GetAdjustedTime() < B.nTime-2 )
|
||||
//fprintf(stderr,"need to wait %d seconds to submit block\n",(int32_t)(B.nTime - GetTime()));
|
||||
while ( GetTime() < B.nTime-2 )
|
||||
{
|
||||
sleep(1);
|
||||
if ( chainActive.LastTip()->GetHeight() >= Mining_height )
|
||||
|
||||
10
src/net.cpp
10
src/net.cpp
@@ -1,6 +1,6 @@
|
||||
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
||||
// 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
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
@@ -193,7 +193,7 @@ CAddress GetLocalAddress(const CNetAddr *paddrPeer)
|
||||
ret = CAddress(addr);
|
||||
}
|
||||
ret.nServices = nLocalServices;
|
||||
ret.nTime = GetAdjustedTime();
|
||||
ret.nTime = GetTime();
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -393,7 +393,7 @@ CNode* ConnectNode(CAddress addrConnect, const char *pszDest)
|
||||
/// debug print
|
||||
LogPrint("net", "trying connection %s lastseen=%.1fhrs\n",
|
||||
pszDest ? pszDest : addrConnect.ToString(),
|
||||
pszDest ? 0.0 : (double)(GetAdjustedTime() - addrConnect.nTime)/3600.0);
|
||||
pszDest ? 0.0 : (double)(GetTime() - addrConnect.nTime)/3600.0);
|
||||
|
||||
// Connect
|
||||
SOCKET hSocket;
|
||||
@@ -458,7 +458,7 @@ void CNode::PushVersion()
|
||||
{
|
||||
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 addrMe = GetLocalAddress(&addr);
|
||||
GetRandBytes((unsigned char*)&nLocalHostNonce, sizeof(nLocalHostNonce));
|
||||
@@ -1429,7 +1429,7 @@ void ThreadOpenConnections()
|
||||
}
|
||||
}
|
||||
|
||||
int64_t nANow = GetAdjustedTime();
|
||||
int64_t nANow = GetTime();
|
||||
|
||||
int nTries = 0;
|
||||
while (true)
|
||||
|
||||
@@ -206,7 +206,7 @@ UniValue getinfo(const UniValue& params, bool fHelp, const CPubKey& mypk)
|
||||
" \"walletversion\": xxxxx, (numeric) the wallet version\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"
|
||||
" \"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"
|
||||
" \"proxy\": \"host:port\", (string, optional) the proxy used by the server\n"
|
||||
" \"difficulty\": xxxxxx, (numeric) the current difficulty\n"
|
||||
@@ -286,7 +286,7 @@ UniValue getinfo(const UniValue& params, bool fHelp, const CPubKey& mypk)
|
||||
#endif
|
||||
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("proxy", (proxy.IsValid() ? proxy.proxy.ToStringIPPort() : string())));
|
||||
obj.push_back(Pair("testnet", Params().TestnetToBeDeprecatedFieldRPC()));
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// Copyright (c) 2009-2014 The Bitcoin Core developers
|
||||
// Copyright (c) 2019-2020 The Hush developers
|
||||
// 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. *
|
||||
@@ -108,7 +109,7 @@ UniValue getpeerinfo(const UniValue& params, bool fHelp, const CPubKey& mypk)
|
||||
" \"bytessent\": n, (numeric) The total bytes sent\n"
|
||||
" \"bytesrecv\": n, (numeric) The total bytes received\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"
|
||||
" \"pingwait\": n, (numeric) ping wait\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("bytesrecv", stats.nRecvBytes));
|
||||
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));
|
||||
if (stats.dPingWait > 0.0)
|
||||
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"
|
||||
" \"protocolversion\": xxxxx, (numeric) the protocol version\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"
|
||||
" \"networks\": [ (array) information per network\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("protocolversion",PROTOCOL_VERSION));
|
||||
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("networks", GetNetworksInfo()));
|
||||
obj.push_back(Pair("relayfee", ValueFromAmount(::minRelayTxFee.GetFeePerK())));
|
||||
|
||||
@@ -345,15 +345,15 @@ BOOST_AUTO_TEST_CASE(addrman_getaddr)
|
||||
BOOST_CHECK(vAddr1.size() == 0);
|
||||
|
||||
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));
|
||||
addr2.nTime = GetAdjustedTime();
|
||||
addr2.nTime = GetTime();
|
||||
CAddress addr3 = CAddress(CService("251.252.2.3", 8333));
|
||||
addr3.nTime = GetAdjustedTime();
|
||||
addr3.nTime = GetTime();
|
||||
CAddress addr4 = CAddress(CService("252.253.3.4", 8333));
|
||||
addr4.nTime = GetAdjustedTime();
|
||||
addr4.nTime = GetTime();
|
||||
CAddress addr5 = CAddress(CService("252.254.4.5", 8333));
|
||||
addr5.nTime = GetAdjustedTime();
|
||||
addr5.nTime = GetTime();
|
||||
CNetAddr source1 = CNetAddr("250.1.2.1");
|
||||
CNetAddr source2 = CNetAddr("250.2.3.3");
|
||||
|
||||
@@ -381,7 +381,7 @@ BOOST_AUTO_TEST_CASE(addrman_getaddr)
|
||||
CAddress addr = CAddress(CService(strAddr));
|
||||
|
||||
// Ensure that for all addrs in addrman, isTerrible == false.
|
||||
addr.nTime = GetAdjustedTime();
|
||||
addr.nTime = GetTime();
|
||||
addrman.Add(addr, CNetAddr(strAddr));
|
||||
if (i % 8 == 0)
|
||||
addrman.Good(addr);
|
||||
|
||||
@@ -1345,7 +1345,7 @@ UniValue movecmd(const UniValue& params, bool fHelp, const CPubKey& mypk)
|
||||
if (!walletdb.TxnBegin())
|
||||
throw JSONRPCError(RPC_DATABASE_ERROR, "database error");
|
||||
|
||||
int64_t nNow = GetAdjustedTime();
|
||||
int64_t nNow = GetTime();
|
||||
|
||||
// Debit
|
||||
CAccountingEntry debit;
|
||||
|
||||
@@ -472,12 +472,13 @@ void CWallet::ChainTip(const CBlockIndex *pindex,
|
||||
boost::optional<std::pair<SproutMerkleTree, SaplingMerkleTree>> 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,
|
||||
// and also when node wakes up from suspension/hibernation and incoming blocks are old.
|
||||
bool initialDownloadCheck = IsInitialBlockDownload();
|
||||
// 144 blocks = 3hrs @ 75s blocktime
|
||||
if (!initialDownloadCheck &&
|
||||
pblock->GetBlockTime() > GetAdjustedTime() - 8640) //Last 144 blocks 2.4 * 60 * 60
|
||||
pblock->GetBlockTime() > GetTime() - 144*ASSETCHAINS_BLOCKTIME)
|
||||
{
|
||||
BuildWitnessCache(pindex, false);
|
||||
RunSaplingConsolidation(pindex->GetHeight());
|
||||
@@ -1373,10 +1374,9 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn, bool fFromLoadWallet, CWalletD
|
||||
bool fInsertedNew = ret.second;
|
||||
if (fInsertedNew)
|
||||
{
|
||||
wtx.nTimeReceived = GetAdjustedTime();
|
||||
wtx.nOrderPos = IncOrderPosNext(pwalletdb);
|
||||
|
||||
wtx.nTimeSmart = wtx.nTimeReceived;
|
||||
wtx.nTimeReceived = GetTime();
|
||||
wtx.nOrderPos = IncOrderPosNext(pwalletdb);
|
||||
wtx.nTimeSmart = wtx.nTimeReceived;
|
||||
if (!wtxIn.hashBlock.IsNull())
|
||||
{
|
||||
if (mapBlockIndex.count(wtxIn.hashBlock))
|
||||
@@ -1385,7 +1385,6 @@ bool CWallet::AddToWallet(const CWalletTx& wtxIn, bool fFromLoadWallet, CWalletD
|
||||
int64_t latestEntry = 0;
|
||||
{
|
||||
// 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;
|
||||
std::list<CAccountingEntry> acentries;
|
||||
TxItems txOrdered = OrderedTxItems(acentries);
|
||||
|
||||
Reference in New Issue
Block a user