From ec2dded961a9a2634a0458cf29a8796b2ff9d2c1 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Thu, 13 Sep 2012 15:23:55 -0700 Subject: [PATCH] Revert "Cleanup transaction set sync map creation." This reverts commit de8288d4d59e60d7a2e1283cdcf5083a3eeab043. --- src/LedgerConsensus.cpp | 18 ++++++++---------- src/NetworkOPs.cpp | 6 ++++++ src/NetworkOPs.h | 1 + 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/LedgerConsensus.cpp b/src/LedgerConsensus.cpp index 3d450295d..515722b40 100644 --- a/src/LedgerConsensus.cpp +++ b/src/LedgerConsensus.cpp @@ -25,7 +25,8 @@ typedef std::pair u256_lct_pair; TransactionAcquire::TransactionAcquire(const uint256& hash) : PeerSet(hash, TX_ACQUIRE_TIMEOUT), mHaveRoot(false) { - mMap = boost::make_shared(hash); + mMap = boost::make_shared(); + mMap->setSynching(); } void TransactionAcquire::done() @@ -33,10 +34,10 @@ void TransactionAcquire::done() if (mFailed) { Log(lsWARNING) << "Failed to acqiure TXs " << mHash; - mapComplete(mHash, SHAMap::pointer(), true); + theApp->getOPs().mapComplete(mHash, SHAMap::pointer()); } else - mapComplete(mHash, mMap, true); + theApp->getOPs().mapComplete(mHash, mMap); } boost::weak_ptr TransactionAcquire::pmDowncast() @@ -375,7 +376,7 @@ void LedgerConsensus::takeInitialPosition(Ledger& initialLedger) } void LedgerConsensus::createDisputes(const SHAMap::pointer& m1, const SHAMap::pointer& m2) -{ // m2 must be immutable +{ SHAMap::SHAMapDiff differences; m1->compare(m2, differences, 16384); for (SHAMap::SHAMapDiff::iterator pos = differences.begin(), end = differences.end(); pos != end; ++pos) @@ -418,8 +419,7 @@ void LedgerConsensus::mapComplete(const uint256& hash, const SHAMap::pointer& ma assert((it2->first == mOurPosition->getCurrentHash()) && it2->second); createDisputes(it2->second, map); } - else - assert(false); // We don't have our own position?! + else assert(false); // We don't have our own position?! } mComplete[map->getHash()] = map; @@ -868,10 +868,8 @@ bool LedgerConsensus::peerGaveNodes(Peer::ref peer, const uint256& setHash, const std::list& nodeIDs, const std::list< std::vector >& nodeData) { boost::unordered_map::iterator acq = mAcquiring.find(setHash); - if (acq == mAcquiring.end()) - return false; - return - acq->second->takeNodes(nodeIDs, nodeData, peer); + if (acq == mAcquiring.end()) return false; + return acq->second->takeNodes(nodeIDs, nodeData, peer); } void LedgerConsensus::beginAccept() diff --git a/src/NetworkOPs.cpp b/src/NetworkOPs.cpp index 1ecfdfae2..cf3873ba8 100644 --- a/src/NetworkOPs.cpp +++ b/src/NetworkOPs.cpp @@ -712,6 +712,12 @@ bool NetworkOPs::hasTXSet(const boost::shared_ptr& peer, const uint256& se return mConsensus->peerHasSet(peer, set, status); } +void NetworkOPs::mapComplete(const uint256& hash, const SHAMap::pointer& map) +{ + if (mConsensus) + mConsensus->mapComplete(hash, map, true); +} + void NetworkOPs::endConsensus(bool correctLCL) { uint256 deadLedger = theApp->getMasterLedger().getClosedLedger()->getParentHash(); diff --git a/src/NetworkOPs.h b/src/NetworkOPs.h index e41a8dc6d..04f4e731a 100644 --- a/src/NetworkOPs.h +++ b/src/NetworkOPs.h @@ -171,6 +171,7 @@ public: bool recvValidation(const SerializedValidation::pointer& val); SHAMap::pointer getTXMap(const uint256& hash); bool hasTXSet(const boost::shared_ptr& peer, const uint256& set, newcoin::TxSetStatus status); + void mapComplete(const uint256& hash, const SHAMap::pointer& map); // network state machine void checkState(const boost::system::error_code& result);