diff options
author | Gregory Maxwell <greg@xiph.org> | 2016-06-11 00:28:48 +0000 |
---|---|---|
committer | Gregory Maxwell <greg@xiph.org> | 2016-06-15 09:56:42 +0000 |
commit | 54326a6808a7026eef9d3a26f91f93b77f00a793 (patch) | |
tree | 8fad0f70057833c64c1120546ae407b244dec79e | |
parent | 8c99d1b525562ab3b733e9d7ef770882646bad5c (diff) |
Increase maximum orphan size to 100,000 bytes.
Although this increases node memory usage in the worst case by perhaps
30MB, the current behavior causes severe issues with dependent tx relay.
-rw-r--r-- | src/main.cpp | 6 | ||||
-rw-r--r-- | src/test/DoS_tests.cpp | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/main.cpp b/src/main.cpp index 6a2290bc05..d4ab32744f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -633,10 +633,10 @@ bool AddOrphanTx(const CTransaction& tx, NodeId peer) EXCLUSIVE_LOCKS_REQUIRED(c // large transaction with a missing parent then we assume // it will rebroadcast it later, after the parent transaction(s) // have been mined or received. - // 10,000 orphans, each of which is at most 5,000 bytes big is - // at most 500 megabytes of orphans: + // 100 orphans, each of which is at most 99,999 bytes big is + // at most 10 megabytes of orphans and somewhat more byprev index (in the worst case): unsigned int sz = tx.GetSerializeSize(SER_NETWORK, CTransaction::CURRENT_VERSION); - if (sz > 5000) + if (sz >= MAX_STANDARD_TX_SIZE) { LogPrint("mempool", "ignoring large orphan tx (size: %u, hash: %s)\n", sz, hash.ToString()); return false; diff --git a/src/test/DoS_tests.cpp b/src/test/DoS_tests.cpp index 95342498fa..818128d186 100644 --- a/src/test/DoS_tests.cpp +++ b/src/test/DoS_tests.cpp @@ -162,7 +162,7 @@ BOOST_AUTO_TEST_CASE(DoS_mapOrphans) tx.vout.resize(1); tx.vout[0].nValue = 1*CENT; tx.vout[0].scriptPubKey = GetScriptForDestination(key.GetPubKey().GetID()); - tx.vin.resize(500); + tx.vin.resize(2777); for (unsigned int j = 0; j < tx.vin.size(); j++) { tx.vin[j].prevout.n = j; |