diff options
| author | Wladimir J. van der Laan <[email protected]> | 2016-04-15 08:58:50 +0200 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2016-04-15 08:59:40 +0200 |
| commit | efc059322ceffbc7485001bebc88dd2fdcb60c4d (patch) | |
| tree | a40c2b481dc74808f0d176d98efefd75db15bd70 /src/net.cpp | |
| parent | Merge #7809: depends: some base fixes/changes (diff) | |
| parent | Change mapRelay to store CTransactions (diff) | |
| download | discoin-efc059322ceffbc7485001bebc88dd2fdcb60c4d.tar.xz discoin-efc059322ceffbc7485001bebc88dd2fdcb60c4d.zip | |
Merge #7877: Change mapRelay to store CTransactions
38c3102 Change mapRelay to store CTransactions (Pieter Wuille)
Diffstat (limited to 'src/net.cpp')
| -rw-r--r-- | src/net.cpp | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/src/net.cpp b/src/net.cpp index 3bf8c165d..e64cb4ef9 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -90,8 +90,8 @@ std::string strSubVersion; vector<CNode*> vNodes; CCriticalSection cs_vNodes; -map<CInv, CDataStream> mapRelay; -deque<pair<int64_t, CInv> > vRelayExpiration; +map<uint256, CTransaction> mapRelay; +deque<pair<int64_t, uint256> > vRelayExpiration; CCriticalSection cs_mapRelay; limitedmap<uint256, int64_t> mapAlreadyAskedFor(MAX_INV_SZ); @@ -2055,14 +2055,6 @@ instance_of_cnetcleanup; void RelayTransaction(const CTransaction& tx, CFeeRate feerate) { - CDataStream ss(SER_NETWORK, PROTOCOL_VERSION); - ss.reserve(10000); - ss << tx; - RelayTransaction(tx, feerate, ss); -} - -void RelayTransaction(const CTransaction& tx, CFeeRate feerate, const CDataStream& ss) -{ CInv inv(MSG_TX, tx.GetHash()); { LOCK(cs_mapRelay); @@ -2073,9 +2065,8 @@ void RelayTransaction(const CTransaction& tx, CFeeRate feerate, const CDataStrea vRelayExpiration.pop_front(); } - // Save original serialized message so newer versions are preserved - mapRelay.insert(std::make_pair(inv, ss)); - vRelayExpiration.push_back(std::make_pair(GetTime() + 15 * 60, inv)); + mapRelay.insert(std::make_pair(inv.hash, tx)); + vRelayExpiration.push_back(std::make_pair(GetTime() + 15 * 60, inv.hash)); } LOCK(cs_vNodes); BOOST_FOREACH(CNode* pnode, vNodes) |