mirror of
https://github.com/twisterarmy/twister-core.git
synced 2025-09-14 15:22:06 +00:00
remove vtxPrev
This commit is contained in:
parent
7f12546f84
commit
2353123580
10
src/main.cpp
10
src/main.cpp
@ -724,16 +724,6 @@ bool CWalletTx::AcceptWalletTransaction()
|
|||||||
{
|
{
|
||||||
{
|
{
|
||||||
LOCK(mempool.cs);
|
LOCK(mempool.cs);
|
||||||
// Add previous supporting transactions first
|
|
||||||
BOOST_FOREACH(CMerkleTx& tx, vtxPrev)
|
|
||||||
{
|
|
||||||
if (!tx.IsSpamMessage())
|
|
||||||
{
|
|
||||||
uint256 hash = tx.GetHash();
|
|
||||||
if (!mempool.exists(hash) && pcoinsTip->HaveCoins(tx.GetUsernameHash()))
|
|
||||||
tx.AcceptToMemoryPool(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return AcceptToMemoryPool(false);
|
return AcceptToMemoryPool(false);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -30,7 +30,8 @@ static const unsigned int MAX_BLOCK_SIZE = 1000000;
|
|||||||
/** The maximum size for mined blocks */
|
/** The maximum size for mined blocks */
|
||||||
static const unsigned int MAX_BLOCK_SIZE_GEN = MAX_BLOCK_SIZE/2;
|
static const unsigned int MAX_BLOCK_SIZE_GEN = MAX_BLOCK_SIZE/2;
|
||||||
/** The maximum size for transactions we're willing to relay/mine */
|
/** The maximum size for transactions we're willing to relay/mine */
|
||||||
static const unsigned int MAX_STANDARD_TX_SIZE = MAX_BLOCK_SIZE_GEN/5;
|
//static const unsigned int MAX_STANDARD_TX_SIZE = MAX_BLOCK_SIZE_GEN/5;
|
||||||
|
static const unsigned int MAX_STANDARD_TX_SIZE = (140+16+512+32); //msg+user+key+spare
|
||||||
/** The maximum allowed number of signature check operations in a block (network rule) */
|
/** The maximum allowed number of signature check operations in a block (network rule) */
|
||||||
static const unsigned int MAX_BLOCK_SIGOPS = MAX_BLOCK_SIZE/50;
|
static const unsigned int MAX_BLOCK_SIGOPS = MAX_BLOCK_SIZE/50;
|
||||||
/** The maximum number of orphan transactions kept in memory */
|
/** The maximum number of orphan transactions kept in memory */
|
||||||
|
@ -665,54 +665,7 @@ int CWalletTx::GetRequestCount() const
|
|||||||
|
|
||||||
void CWalletTx::AddSupportingTransactions()
|
void CWalletTx::AddSupportingTransactions()
|
||||||
{
|
{
|
||||||
vtxPrev.clear();
|
// [MF] remove me
|
||||||
|
|
||||||
const int COPY_DEPTH = 3;
|
|
||||||
if (SetMerkleBranch() < COPY_DEPTH)
|
|
||||||
{
|
|
||||||
vector<uint256> vWorkQueue;
|
|
||||||
/*
|
|
||||||
BOOST_FOREACH(const CTxIn& txin, vin)
|
|
||||||
vWorkQueue.push_back(txin.prevout.hash);
|
|
||||||
|
|
||||||
{
|
|
||||||
LOCK(pwallet->cs_wallet);
|
|
||||||
map<uint256, const CMerkleTx*> mapWalletPrev;
|
|
||||||
set<uint256> setAlreadyDone;
|
|
||||||
for (unsigned int i = 0; i < vWorkQueue.size(); i++)
|
|
||||||
{
|
|
||||||
uint256 hash = vWorkQueue[i];
|
|
||||||
if (setAlreadyDone.count(hash))
|
|
||||||
continue;
|
|
||||||
setAlreadyDone.insert(hash);
|
|
||||||
|
|
||||||
CMerkleTx tx;
|
|
||||||
map<uint256, CWalletTx>::const_iterator mi = pwallet->mapWallet.find(hash);
|
|
||||||
if (mi != pwallet->mapWallet.end())
|
|
||||||
{
|
|
||||||
tx = (*mi).second;
|
|
||||||
BOOST_FOREACH(const CMerkleTx& txWalletPrev, (*mi).second.vtxPrev)
|
|
||||||
mapWalletPrev[txWalletPrev.GetHash()] = &txWalletPrev;
|
|
||||||
}
|
|
||||||
else if (mapWalletPrev.count(hash))
|
|
||||||
{
|
|
||||||
tx = *mapWalletPrev[hash];
|
|
||||||
}
|
|
||||||
|
|
||||||
int nDepth = tx.SetMerkleBranch();
|
|
||||||
vtxPrev.push_back(tx);
|
|
||||||
|
|
||||||
if (nDepth < COPY_DEPTH)
|
|
||||||
{
|
|
||||||
BOOST_FOREACH(const CTxIn& txin, tx.vin)
|
|
||||||
vWorkQueue.push_back(txin.prevout.hash);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
reverse(vtxPrev.begin(), vtxPrev.end());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CWalletTx::WriteToDisk()
|
bool CWalletTx::WriteToDisk()
|
||||||
@ -810,12 +763,6 @@ void CWallet::ReacceptWalletTransactions()
|
|||||||
|
|
||||||
void CWalletTx::RelayWalletTransaction()
|
void CWalletTx::RelayWalletTransaction()
|
||||||
{
|
{
|
||||||
BOOST_FOREACH(const CMerkleTx& tx, vtxPrev)
|
|
||||||
{
|
|
||||||
if (!tx.IsSpamMessage())
|
|
||||||
if (tx.GetDepthInMainChain() == 0)
|
|
||||||
RelayTransaction((CTransaction)tx, tx.GetHash());
|
|
||||||
}
|
|
||||||
if (!IsSpamMessage())
|
if (!IsSpamMessage())
|
||||||
{
|
{
|
||||||
if (GetDepthInMainChain() == 0) {
|
if (GetDepthInMainChain() == 0) {
|
||||||
|
32
src/wallet.h
32
src/wallet.h
@ -381,7 +381,6 @@ private:
|
|||||||
const CWallet* pwallet;
|
const CWallet* pwallet;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
std::vector<CMerkleTx> vtxPrev;
|
|
||||||
mapValue_t mapValue;
|
mapValue_t mapValue;
|
||||||
std::vector<std::pair<std::string, std::string> > vOrderForm;
|
std::vector<std::pair<std::string, std::string> > vOrderForm;
|
||||||
unsigned int fTimeReceivedIsTxTime;
|
unsigned int fTimeReceivedIsTxTime;
|
||||||
@ -427,7 +426,6 @@ public:
|
|||||||
void Init(const CWallet* pwalletIn)
|
void Init(const CWallet* pwalletIn)
|
||||||
{
|
{
|
||||||
pwallet = pwalletIn;
|
pwallet = pwalletIn;
|
||||||
vtxPrev.clear();
|
|
||||||
mapValue.clear();
|
mapValue.clear();
|
||||||
vOrderForm.clear();
|
vOrderForm.clear();
|
||||||
fTimeReceivedIsTxTime = false;
|
fTimeReceivedIsTxTime = false;
|
||||||
@ -476,7 +474,6 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
nSerSize += SerReadWrite(s, *(CMerkleTx*)this, nType, nVersion,ser_action);
|
nSerSize += SerReadWrite(s, *(CMerkleTx*)this, nType, nVersion,ser_action);
|
||||||
READWRITE(vtxPrev);
|
|
||||||
READWRITE(mapValue);
|
READWRITE(mapValue);
|
||||||
READWRITE(vOrderForm);
|
READWRITE(vOrderForm);
|
||||||
READWRITE(fTimeReceivedIsTxTime);
|
READWRITE(fTimeReceivedIsTxTime);
|
||||||
@ -662,35 +659,6 @@ public:
|
|||||||
if (!IsFromMe()) // using wtx's cached debit
|
if (!IsFromMe()) // using wtx's cached debit
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// If no confirmations but it's from us, we can still
|
|
||||||
// consider it confirmed if all dependencies are confirmed
|
|
||||||
std::map<uint256, const CMerkleTx*> mapPrev;
|
|
||||||
std::vector<const CMerkleTx*> vWorkQueue;
|
|
||||||
vWorkQueue.reserve(vtxPrev.size()+1);
|
|
||||||
vWorkQueue.push_back(this);
|
|
||||||
for (unsigned int i = 0; i < vWorkQueue.size(); i++)
|
|
||||||
{
|
|
||||||
const CMerkleTx* ptx = vWorkQueue[i];
|
|
||||||
|
|
||||||
if (ptx->GetDepthInMainChain() >= 1)
|
|
||||||
continue;
|
|
||||||
if (!pwallet->IsFromMe(*ptx))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (mapPrev.empty())
|
|
||||||
{
|
|
||||||
BOOST_FOREACH(const CMerkleTx& tx, vtxPrev)
|
|
||||||
mapPrev[tx.GetHash()] = &tx;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
BOOST_FOREACH(const CTxIn& txin, ptx->vin)
|
|
||||||
{
|
|
||||||
if (!mapPrev.count(txin.prevout.hash))
|
|
||||||
return false;
|
|
||||||
vWorkQueue.push_back(mapPrev[txin.prevout.hash]);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user