diff options
| author | Gregory Maxwell <[email protected]> | 2016-06-11 00:28:48 +0000 |
|---|---|---|
| committer | Gregory Maxwell <[email protected]> | 2016-06-15 09:56:42 +0000 |
| commit | 54326a6808a7026eef9d3a26f91f93b77f00a793 (patch) | |
| tree | 8fad0f70057833c64c1120546ae407b244dec79e | |
| parent | Treat orphans as implicit inv for parents, discard when parents rejected. (diff) | |
| download | discoin-54326a6808a7026eef9d3a26f91f93b77f00a793.tar.xz discoin-54326a6808a7026eef9d3a26f91f93b77f00a793.zip | |
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 6a2290bc0..d4ab32744 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 95342498f..818128d18 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; |