aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-10-14Fix comment formatting tabsMatt Corallo
2015-10-14Undo GetMinFee-requires-extra-call-to-hit-0Matt Corallo
2015-10-13Drop minRelayTxFee to 1000Matt Corallo
There is no exact science to setting this parameter, but 5000 (just over 1 US cent at the time of writing) is higher than the cost to relay a transaction around the network (the new benchmark due to mempool limiting).
2015-10-13Add reasonable test case for mempool trimmingMatt Corallo
2015-10-13Only call TrimToSize once per reorg/blocks disconnectMatt Corallo
2015-10-13Implement on-the-fly mempool size limitation.Matt Corallo
After each transaction which is added to mempool, we first call Expire() to remove old transactions, then throwing away the lowest-feerate transactions. After throwing away transactions by feerate, we set the minimum relay fee to the maximum fee transaction-and-dependant-set we removed, plus the default minimum relay fee. After the next block is received, the minimum relay fee is allowed to decrease exponentially. Its halflife defaults to 12 hours, but is decreased to 6 hours if the mempool is smaller than half its maximum size, and 3 hours if the mempool is smaller than a quarter its maximum size. The minimum -maxmempool size is 40*-limitdescendantsize, as it is easy for an attacker to play games with the cheapest -limitdescendantsize transactions. -maxmempool defaults to 300MB. This disables high-priority transaction relay when the min relay fee adjustment is >0 (ie when the mempool is full). When the relay fee adjustment drops below the default minimum relay fee / 2 it is set to 0 (re-enabling priority-based free relay).
2015-10-13Print mempool size in KB when adding txnMatt Corallo
2015-10-13Add CFeeRate += operatorMatt Corallo
2015-10-13Track (and define) ::minRelayTxFee in CTxMemPoolMatt Corallo
2015-10-13Fix calling mempool directly, instead of pool, in ATMPMatt Corallo
2015-10-13Add Mempool Expire function to remove old transactionsPieter Wuille
(note the 9x multiplier on (void*)'s for CTxMemPool::DynamicMemoryUsage was accidentally introduced in 5add7a7 but should have waited for this commit which adds the extra index)
2015-10-13Reverse the sort on the mempool's feerate indexSuhas Daftuar
2015-10-11Merge pull request #6793Wladimir J. van der Laan
4e2efb3 tests: update transaction_tests for new dust threshold (Wladimir J. van der Laan) 28e3249 Bump minrelaytxfee default (Wladimir J. van der Laan)
2015-10-10tests: update transaction_tests for new dust thresholdWladimir J. van der Laan
2015-10-10Merge pull request #6795Wladimir J. van der Laan
21d27eb net: Disable upnp by default (Wladimir J. van der Laan)
2015-10-09net: Disable upnp by defaultWladimir J. van der Laan
Common sentiment is that the miniupnpc codebase likely contains further vulnerabilities. I'd prefer to get rid of the dependency completely, but a compromise for now is to at least disable it by default.
2015-10-09Bump minrelaytxfee defaultWladimir J. van der Laan
To bridge the time until a dynamic method for determining this fee is merged. This is especially aimed at the stable releases (0.10, 0.11) because full mempool limiting, as will be in 0.12, is too invasive and risky to backport.
2015-10-09Merge pull request #6789Wladimir J. van der Laan
0cca024 Update miniupnpc to 1.9.20151008 (Wladimir J. van der Laan)
2015-10-09Update miniupnpc to 1.9.20151008Wladimir J. van der Laan
This version of miniupnpc fixes a buffer overflow in the XML (ugh) parser during initial network discovery. http://talosintel.com/reports/TALOS-2015-0035/ The commit fixing the vulnerability is: https://github.com/miniupnp/miniupnp/commit/79cca974a4c2ab1199786732a67ff6d898051b78 Reported by timothy on IRC.
2015-10-09Merge pull request #6779Wladimir J. van der Laan
b22692c build: Make use of ZMQ_CFLAGS (Cory Fields)
2015-10-09Merge pull request #6783Wladimir J. van der Laan
34754ce [Trivial] Fixed typo when referring to a previous section in depends/README.md [skip ci] (Chris Kleeschulte)
2015-10-09Merge pull request #6770Wladimir J. van der Laan
b2af29b Ignore bench_bitcoin binary. (Pavel Janík)
2015-10-08[Trivial] Fixed typo when referring to a previous section inChris Kleeschulte
depends/README.md [skip ci]
2015-10-08build: Make use of ZMQ_CFLAGSCory Fields
2015-10-07Merge pull request #6720Wladimir J. van der Laan
1534d9a Creates unittests for addrman, makes addrman testable. Adds several unittests for addrman to verify it works as expected. Makes small modifications to addrman to allow deterministic and targeted tests. (EthanHeilman)
2015-10-07Merge pull request #6769Wladimir J. van der Laan
b196b68 Test LowS in standardness, removes nuisance malleability vector. (Gregory Maxwell)
2015-10-06Merge pull request #6650Wladimir J. van der Laan
42cb388 Add chainstate obfuscation to avoid spurious antivirus detection (James O'Beirne)
2015-10-06Ignore bench_bitcoin binary.Pavel Janík
2015-10-06Add chainstate obfuscation to avoid spurious antivirus detectionJames O'Beirne
Adds an `obfuscate` parameter to `CLevelDBWrapper` and makes use of it for all new chainstate stores built via `CCoinsViewDB`. Also adds an `Xor` method to `CDataStream`. Thanks to @sipa @laanwj @pstratem @dexX7 @KyrosKrane @gmaxwell.
2015-10-06Merge pull request #6733Wladimir J. van der Laan
7072c54 Support very-fast-running benchmarks (Gavin Andresen) 535ed92 Simple benchmarking framework (Gavin Andresen)
2015-10-06Merge pull request #6762Wladimir J. van der Laan
a19504b tests-config.sh is superseded by tests_config.py (Pavel Janík)
2015-10-06Merge pull request #6743Wladimir J. van der Laan
dd28089 autotools: move checking for zmq library to common area in configure.ac (Johnathan Corgan)
2015-10-06Merge pull request #6760Wladimir J. van der Laan
efb37d4 Changed run-bitcoind-for-test.sh.in to non-executable mode. Consistency with other *.in input files. (randy-waterhouse)
2015-10-06Merge pull request #6763Wladimir J. van der Laan
202f612 The Bitcoin Core project is releasing Bitcoin Core, not Bitcoin. (Pavel Janík)
2015-10-06Merge pull request #6751Wladimir J. van der Laan
9204930 Document pull-req #6424 in release-notes (Peter Todd)
2015-10-06Merge pull request #6768Wladimir J. van der Laan
9f5c641 zmq: update docs to reflect feature is compiled in automatically if possible (Johnathan Corgan)
2015-10-06Merge pull request #6742Wladimir J. van der Laan
58981d4 Changed logging to make -logtimestamps to work also for -printtoconsole (Arne Brutschy)
2015-10-06Test LowS in standardness, removes nuisance malleability vector.Gregory Maxwell
This adds SCRIPT_VERIFY_LOW_S to STANDARD_SCRIPT_VERIFY_FLAGS which will make the node require the canonical 'low-s' encoding for ECDSA signatures when relaying or mining. Consensus behavior is unchanged. The rational is explained in a81cd96805ce6b65cca3a40ebbd3b2eb428abb7b: Absent this kind of test ECDSA is not a strong signature as given a valid signature {r, s} both that value and {r, -s mod n} are valid. These two encodings have different hashes allowing third parties a vector to change users txids. These attacks are avoided by picking a particular form as canonical and rejecting the other form(s); in the of the LOW_S rule, the smaller of the two possible S values is used. If widely deployed this change would eliminate the last remaining known vector for nuisance malleability on boring SIGHASH_ALL p2pkh transactions. On the down-side it will block most transactions made by sufficiently out of date software. Unlike the other avenues to change txids on boring transactions this one was randomly violated by all deployed bitcoin software prior to its discovery. So, while other malleability vectors where made non-standard as soon as they were discovered, this one has remained permitted. Even BIP62 did not propose applying this rule to old version transactions, but conforming implementations have become much more common since BIP62 was initially written. Bitcoin Core has produced compatible signatures since a28fb70e in September 2013, but this didn't make it into a release until 0.9 in March 2014; Bitcoinj has done so for a similar span of time. Bitcoinjs and electrum have been more recently updated. This does not replace the need for BIP62 or similar, as miners can still cooperate to break transactions. Nor does it replace the need for wallet software to handle malleability sanely[1]. This only eliminates the cheap and irritating DOS attack. [1] On the Malleability of Bitcoin Transactions Marcin Andrychowicz, Stefan Dziembowski, Daniel Malinowski, Łukasz Mazurek http://fc15.ifca.ai/preproceedings/bitcoin/paper_9.pdf
2015-10-05zmq: update docs to reflect feature is compiled in automatically if possibleJohnathan Corgan
Signed-off-by: Johnathan Corgan <johnathan@corganlabs.com>
2015-10-06Document pull-req #6424 in release-notesPeter Todd
Mention now allowed sequence of pushdatas in OP_RETURN outputs in release notes.
2015-10-05The Bitcoin Core project is releasing Bitcoin Core, not Bitcoin.Pavel Janík
2015-10-05tests-config.sh is superseded by tests_config.pyPavel Janík
2015-10-05Changed run-bitcoind-for-test.sh.in to non-executable mode.randy-waterhouse
Consistency with other *.in input files.
2015-10-05Merge pull request #6744Wladimir J. van der Laan
bb24835 build: disable -Wself-assign (Wladimir J. van der Laan)
2015-10-05Merge pull request #6748Wladimir J. van der Laan
9ee5ac8 Rewrite help texts for features enabled by default. (Pavel Janík)
2015-10-05Changed rpc-tests.sh to rpc-tests.py in README.mdptschip
Github-Pull: #6752
2015-10-05Merge pull request #6759Wladimir J. van der Laan
ea70997 build: Remove unnecessary chmods after #6616 (Wladimir J. van der Laan)
2015-10-05build: Remove unnecessary chmods after #6616Wladimir J. van der Laan
Don't chmod a repository-included file in the configure script, and `tests_config.py` is a module that doesn't need to be executable.
2015-10-04qa/pull-tester/rpc-tests.py: chmod 0755Jeff Garzik
Fix file mode to be executable. Include dummy whitespace change to force git to change mode.
2015-10-03autotools: move checking for zmq library to common area in configure.acJohnathan Corgan
* Fixes #6679 * Tested with --disable-zmq * Tested with and without pkgconfig * Tested with and without zmq installed Signed-off-by: Johnathan Corgan <johnathan@corganlabs.com>