Properly serialize/deserialize new blockindex with zstats
This commit is contained in:
11
src/chain.h
11
src/chain.h
@@ -613,6 +613,17 @@ public:
|
|||||||
READWRITE(VARINT(chainPower.nHeight));
|
READWRITE(VARINT(chainPower.nHeight));
|
||||||
READWRITE(VARINT(nStatus));
|
READWRITE(VARINT(nStatus));
|
||||||
READWRITE(VARINT(nTx));
|
READWRITE(VARINT(nTx));
|
||||||
|
|
||||||
|
READWRITE(VARINT(nShieldedTx));
|
||||||
|
READWRITE(VARINT(nShieldingTx));
|
||||||
|
READWRITE(VARINT(nDeshieldingTx));
|
||||||
|
READWRITE(VARINT(nFullyShieldedTx));
|
||||||
|
|
||||||
|
READWRITE(VARINT(nShieldedPayments));
|
||||||
|
READWRITE(VARINT(nShieldingPayments));
|
||||||
|
READWRITE(VARINT(nDeshieldingPayments));
|
||||||
|
READWRITE(VARINT(nFullyShieldedPayments));
|
||||||
|
|
||||||
if (nStatus & (BLOCK_HAVE_DATA | BLOCK_HAVE_UNDO))
|
if (nStatus & (BLOCK_HAVE_DATA | BLOCK_HAVE_UNDO))
|
||||||
READWRITE(VARINT(nFile));
|
READWRITE(VARINT(nFile));
|
||||||
if (nStatus & BLOCK_HAVE_DATA)
|
if (nStatus & BLOCK_HAVE_DATA)
|
||||||
|
|||||||
21
src/main.cpp
21
src/main.cpp
@@ -6151,6 +6151,12 @@ bool static LoadBlockIndexDB()
|
|||||||
pindex->nChainTx = pindex->pprev->nChainTx + pindex->nTx;
|
pindex->nChainTx = pindex->pprev->nChainTx + pindex->nTx;
|
||||||
pindex->nChainShieldedTx = pindex->pprev->nChainShieldedTx + pindex->nShieldedTx;
|
pindex->nChainShieldedTx = pindex->pprev->nChainShieldedTx + pindex->nShieldedTx;
|
||||||
pindex->nChainShieldedPayments = pindex->pprev->nChainShieldedPayments + pindex->nShieldedPayments;
|
pindex->nChainShieldedPayments = pindex->pprev->nChainShieldedPayments + pindex->nShieldedPayments;
|
||||||
|
pindex->nChainShieldingTx = pindex->pprev->nChainShieldingTx + pindex->nShieldingTx;
|
||||||
|
pindex->nChainShieldingPayments = pindex->pprev->nChainShieldingPayments + pindex->nShieldingPayments;
|
||||||
|
pindex->nChainDeshieldingTx = pindex->pprev->nChainShieldedTx + pindex->nShieldedTx;
|
||||||
|
pindex->nChainDeshieldingPayments = pindex->pprev->nChainShieldedPayments + pindex->nShieldedPayments;
|
||||||
|
pindex->nChainFullyShieldedTx = pindex->pprev->nChainFullyShieldedTx + pindex->nFullyShieldedTx;
|
||||||
|
pindex->nChainFullyShieldedPayments = pindex->pprev->nChainFullyShieldedPayments + pindex->nFullyShieldedPayments;
|
||||||
|
|
||||||
if (pindex->pprev->nChainSproutValue && pindex->nSproutValue) {
|
if (pindex->pprev->nChainSproutValue && pindex->nSproutValue) {
|
||||||
pindex->nChainSproutValue = *pindex->pprev->nChainSproutValue + *pindex->nSproutValue;
|
pindex->nChainSproutValue = *pindex->pprev->nChainSproutValue + *pindex->nSproutValue;
|
||||||
@@ -6164,12 +6170,27 @@ bool static LoadBlockIndexDB()
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pindex->nChainTx = 0;
|
pindex->nChainTx = 0;
|
||||||
|
pindex->nChainShieldedTx = 0;
|
||||||
|
pindex->nChainFullyShieldedTx = 0;
|
||||||
|
pindex->nChainShieldedPayments = 0;
|
||||||
|
pindex->nChainShieldingPayments = 0;
|
||||||
|
pindex->nChainDeshieldingTx = 0;
|
||||||
|
pindex->nChainDeshieldingPayments = 0;
|
||||||
|
pindex->nChainFullyShieldedTx = 0;
|
||||||
|
pindex->nChainFullyShieldedPayments = 0;
|
||||||
pindex->nChainSproutValue = boost::none;
|
pindex->nChainSproutValue = boost::none;
|
||||||
pindex->nChainSaplingValue = boost::none;
|
pindex->nChainSaplingValue = boost::none;
|
||||||
mapBlocksUnlinked.insert(std::make_pair(pindex->pprev, pindex));
|
mapBlocksUnlinked.insert(std::make_pair(pindex->pprev, pindex));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pindex->nChainTx = pindex->nTx;
|
pindex->nChainTx = pindex->nTx;
|
||||||
|
pindex->nChainShieldedTx = pindex->nShieldedTx;
|
||||||
|
pindex->nChainShieldedPayments = pindex->nShieldedPayments;
|
||||||
|
pindex->nChainShieldingTx = pindex->nShieldingTx;
|
||||||
|
pindex->nChainShieldingPayments = pindex->nShieldingPayments;
|
||||||
|
pindex->nChainDeshieldingTx = pindex->nDeshieldingTx;
|
||||||
|
pindex->nChainDeshieldingPayments = pindex->nDeshieldingPayments;
|
||||||
|
pindex->nChainFullyShieldedPayments = pindex->nFullyShieldedPayments;
|
||||||
pindex->nChainSproutValue = pindex->nSproutValue;
|
pindex->nChainSproutValue = pindex->nSproutValue;
|
||||||
pindex->nChainSaplingValue = pindex->nSaplingValue;
|
pindex->nChainSaplingValue = pindex->nSaplingValue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -716,10 +716,19 @@ bool CBlockTreeDB::LoadBlockIndexGuts()
|
|||||||
pindexNew->nStatus = diskindex.nStatus;
|
pindexNew->nStatus = diskindex.nStatus;
|
||||||
pindexNew->nCachedBranchId = diskindex.nCachedBranchId;
|
pindexNew->nCachedBranchId = diskindex.nCachedBranchId;
|
||||||
pindexNew->nTx = diskindex.nTx;
|
pindexNew->nTx = diskindex.nTx;
|
||||||
|
pindexNew->nShieldedTx = diskindex.nShieldedTx;
|
||||||
|
pindexNew->nShieldedPayments = diskindex.nShieldedPayments;
|
||||||
|
pindexNew->nShieldingTx = diskindex.nShieldingTx;
|
||||||
|
pindexNew->nShieldingPayments = diskindex.nShieldingPayments;
|
||||||
|
pindexNew->nDeshieldingTx = diskindex.nDeshieldingTx;
|
||||||
|
pindexNew->nDeshieldingPayments = diskindex.nDeshieldingPayments;
|
||||||
|
pindexNew->nFullyShieldedTx = diskindex.nFullyShieldedTx;
|
||||||
|
pindexNew->nFullyShieldedPayments = diskindex.nFullyShieldedPayments;
|
||||||
pindexNew->nSproutValue = diskindex.nSproutValue;
|
pindexNew->nSproutValue = diskindex.nSproutValue;
|
||||||
pindexNew->nSaplingValue = diskindex.nSaplingValue;
|
pindexNew->nSaplingValue = diskindex.nSaplingValue;
|
||||||
pindexNew->segid = diskindex.segid;
|
pindexNew->segid = diskindex.segid;
|
||||||
pindexNew->nNotaryPay = diskindex.nNotaryPay;
|
pindexNew->nNotaryPay = diskindex.nNotaryPay;
|
||||||
|
|
||||||
//fprintf(stderr,"loadguts ht.%d\n",pindexNew->GetHeight());
|
//fprintf(stderr,"loadguts ht.%d\n",pindexNew->GetHeight());
|
||||||
// Consistency checks
|
// Consistency checks
|
||||||
auto header = pindexNew->GetBlockHeader();
|
auto header = pindexNew->GetBlockHeader();
|
||||||
|
|||||||
Reference in New Issue
Block a user