aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-10-09qt: Update translations before 0.11.1v0.11.1rc1Wladimir J. van der Laan
2015-10-09doc: Update release notes for 0.11.1Wladimir J. van der Laan
2015-10-09Merge pull request #6785Wladimir J. van der Laan
36f14bf In (strCommand == "tx"), return if AlreadyHave() (Tom Harding)
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. Github-Pull: 6789 Rebased-From: 0cca0248f030ea32bd8de778b5a2782e0d191978
2015-10-08In (strCommand == "tx"), return if AlreadyHave()Tom Harding
The main effect is to exit processing for recently-rejected hashes, in case they are pushed to us without prior advertisement. This behavior was seen in the wild. An additional effect is to do early checks for mempool or mapOrphan existence. No logging or nDoS tracking is needed for failures of these checks.
2015-10-07Test 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 Rebased-From: b196b685c9089b74fd4ff3d9a28ea847ab36179b Github-Pull: #6769
2015-10-06Merge pull request #6750Wladimir J. van der Laan
5094a81 Move recentRejects initialization to top of InitBlockIndex (Wladimir J. van der Laan) ec9b6c3 Keep track of recently rejected transactions (Peter Todd) 6eed52e Only use randomly created nonces in CRollingBloomFilter. (Pieter Wuille) 83671ef Make CRollingBloomFilter set nTweak for you (Peter Todd) 25cf122 Reuse vector hashing code for uint256 (Pieter Wuille) 2983fe0 Add uint256 support to CRollingBloomFilter (Peter Todd)
2015-10-02Move recentRejects initialization to top of InitBlockIndexWladimir J. van der Laan
This avoids that premature return in the condition that a new chain is initialized results in NULL pointer errors due to recentReject not being constructed. Also add assertions where it is used. (cherry picked from commit a8d0407c4fcf7c4e8ed0e8edabd204f7a4efa477)
2015-10-02Keep track of recently rejected transactionsPeter Todd
Nodes can have divergent policies on which transactions they will accept and relay. This can cause you to repeatedly request and reject the same tx after its inved to you from various peers which have accepted it. Here we add rolling bloom filter to keep track of such rejections, clearing the filter every time the chain tip changes. Credit goes to Alex Morcos, who created the patch that this code is based on. Original code by Peter Todd. Refactored to not construct the filter at startup time by Pieter Wuille. (cherry picked from commit 0847d9cb5fcd2fdd5a21bde699944d966cf5add9)
2015-10-02Only use randomly created nonces in CRollingBloomFilter.Pieter Wuille
(cherry picked from commit d741371d7d27e228aa64c618c50b23fb5449c3e1)
2015-10-02Make CRollingBloomFilter set nTweak for youPeter Todd
While CBloomFilter is usually used with an explicitly set nTweak, CRollingBloomFilter is only used internally. Requiring every caller to set nTweak is error-prone and redundant; better to have the class handle that for you with a high-quality randomness source. Additionally when clearing the filter it makes sense to change nTweak as well to recover from a bad setting, e.g. due to insufficient randomness at initialization, so the clear() method is replaced by a reset() method that sets a new, random, nTweak value. (cherry picked from commit d2d7ee0e863b286e1c9f9c54659d494fb0a7712d)
2015-10-02Reuse vector hashing code for uint256Pieter Wuille
(cherry picked from commit a3d65fedaa18686f0cc007d0a13dba6545250300)
2015-10-02Add uint256 support to CRollingBloomFilterPeter Todd
(cherry picked from commit bbe41088c61f2ad328766e851ffe6169aa80935a)
2015-09-29qt: periodic translation updateWladimir J. van der Laan
2015-09-23Merge pull request #6703Wladimir J. van der Laan
45bfa13 PARTIAL: typofixes (found by misspell_fixer) (Veres Lajos) 21c406e add support for miniupnpc api version 14 (Pavel Vasin) 13bd5a7 rpc-tests: re-enable rpc-tests for Windows (Cory Fields) ccc4ad6 net: Set SO_REUSEADDR for Windows too (Cory Fields) 1f6772e add unit test for CNetAddr::GetGroup. (Alex Morcos) 13642a5 Fix masking of irrelevant bits in address groups. (Alex Morcos) 6b51b9b Replace boost::reverse_lock with our own. (Casey Rodarmor) 626c5e6 Make sure we re-acquire lock if a task throws (Casey Rodarmor) 4877053 Add missing files to files.md (fanquake) f171fee Handle leveldb::DestroyDB() errors on wipe failure (Adam Weiss) c5b89fe Fix race condition on test node shutdown (Casey Rodarmor) 4a37410 Handle no chain tip available in InvalidChainFound() (Ross Nicoll) f6d29a6 Use unique name for AlertNotify tempfile (Casey Rodarmor) e6adac7 Delay initial pruning until after wallet init (Adam Weiss) e0020d4 Make sure LogPrint strings are line-terminated (J Ross Nicoll) 7ff9d12 Make sure LogPrintf strings are line-terminated (Wladimir J. van der Laan) 5a39133 build: fix libressl detection (Cory Fields) f6355e6 Avoid leaking file descriptors in RegisterLoad (Casey Rodarmor) 60457d3 locking: fix a few small issues uncovered by -Wthread-safety (Cory Fields) a496e11 Remove bash test note from rpc-tests readme (fanquake) 49c6a64 tests: Remove old sh-based test framework (Wladimir J. van der Laan) a37567d Add autogen.sh to source tarball. (randy-waterhouse) 1f4d7cf travis: for travis generating an extra build (Cory Fields)
2015-09-22[QT] fix thin space word wrap line brake issueJonas Schnelli
The thin space QT html hack results in cut-off chars/nums after a line break. Avoid word wrap line breaks by using a smaller font and a line break before each alternative value) Rebased-From: 24cb7c7bbba224dcb73fcf69296f5ef4734f745f Github-Pull: #6694
2015-09-22PARTIAL: typofixes (found by misspell_fixer)Veres Lajos
Upstream: 9f68ed6b6d1a9c6436ce37913666165f2b180ee3 (PR #6539)
2015-09-22add support for miniupnpc api version 14Pavel Vasin
The value of new arg ttl is set to 2 as it's recommended default.
2015-09-22rpc-tests: re-enable rpc-tests for WindowsCory Fields
2015-09-22net: Set SO_REUSEADDR for Windows tooCory Fields
When running the rpc tests in Wine, nodes often fail to listen on localhost due to a stale socket from a previous run. This aligns the behavior with other platforms.
2015-09-22add unit test for CNetAddr::GetGroup.Alex Morcos
2015-09-22Fix masking of irrelevant bits in address groups.Alex Morcos
2015-09-22Replace boost::reverse_lock with our own.Casey Rodarmor
2015-09-22Make sure we re-acquire lock if a task throwsCasey Rodarmor
2015-09-22Add missing files to files.mdfanquake
typo
2015-09-22Handle leveldb::DestroyDB() errors on wipe failureAdam Weiss
Add error checking to CLevelDBWrapper for errors from leveldb::DestroyDB(). Without it, if unlink() or DeleteFileW() fail to delete files, they will fail silent. If they fail to delete any files, CLevelDBWrapper will silently open and read the existing database. Typically any permissions issues would be caught by leveldb as it churns through many files as part of its compaction process, but it is conceivable that this could cause problems on Windows with anti-virus and indexing software.
2015-09-22Fix race condition on test node shutdownCasey Rodarmor
2015-09-22Handle no chain tip available in InvalidChainFound()Ross Nicoll
Handle the case where no chain tip is available, in InvalidChainFound(). This fixes a null pointer deference when running unit tests, if the genesis block or block validation code is broken.
2015-09-22Use unique name for AlertNotify tempfileCasey Rodarmor
2015-09-22Delay initial pruning until after wallet initAdam Weiss
Don't prune until any wallet rescanning has taken place to avoid potentially pruning blocks that the wallet rescan may need.
2015-09-22Make sure LogPrint strings are line-terminatedJ Ross Nicoll
2015-09-22Make sure LogPrintf strings are line-terminatedWladimir J. van der Laan
Fix the cases where LogPrint[f] was accidentally called without line terminator, which resulted in concatenated log lines. (see e.g. #6492)
2015-09-22build: fix libressl detectionCory Fields
Checking libcrypto for a function after we've already found a (possibly different) libcrypto is not what we want to do here. pkg-config might've found a cross lib while AC_CHECK_LIB may find a different or native one. Run a link-test against the lib that's already been found instead.
2015-09-22Avoid leaking file descriptors in RegisterLoadCasey Rodarmor
This is pretty trivial, but if there's an error here we'll leak a file descriptor. Changed it to always close the file.
2015-09-22locking: fix a few small issues uncovered by -Wthread-safetyCory Fields
- rpcwallet: No need to lock twice here - openssl: Clang doesn't understand selective lock/unlock here. Ignore it. - CNode: Fix a legitimate (though very unlikely) locking bug.
2015-09-22Remove bash test note from rpc-tests readmefanquake
2015-09-22tests: Remove old sh-based test frameworkWladimir J. van der Laan
This removes the `conflictedbalance.sh` test as well, but that test has been broken for a long time and isn't part of any scripts. What it does is, IMO, sufficiently tested by other tests.
2015-09-22Add autogen.sh to source tarball.randy-waterhouse
2015-09-22travis: for travis generating an extra buildCory Fields
2015-08-20Do not store more than 200 timedata samples.Pavel Janík
Github-Pull: #6545 Rebased-From: 8be371db340b03dc03142c1bb3390fdfc84f56b4
2015-08-20consensus: cache the openssl EC_GROUP to avoid a race condition for each ↵Cory Fields
CECKey instantiation Github-Pull: #6571 Rebased-From: 1d1073c2d3231a9de4adbc2bc46846fc20b34f9e
2015-07-29Be even stricter in processing unrequested blocksSuhas Daftuar
Github-Pull: #6224 Rebased-From: bfc30b34374d71928acee5ff41282f09cedfd5e4 6b1066fab41523d25d75b45a10e4b0f61d7c61d0 04b5d235f1560b8285591b963d3636f7ddf74563 59b49cd07482494d9a99068af502be9ceda41ed2
2015-07-28Revert "Cache transaction validation successes"Pieter Wuille
This reverts commit bc484ef8db02715e283e4cddd2c972316c0688dd.
2015-07-27Cache transaction validation successesPieter Wuille
Conflicts: src/main.cpp src/test/test_bitcoin.cpp Github-Pull: #6077 Rebased-From: 17b11428c135203342aff38cabc8047e673f38ac 517e6dd25618522c716e64859554b0f29c6e65d0
2015-07-27Depends: bump to qt 5.5Cory Fields
Github-Pull: #6471 Rebased-From: fe997dfd121e3d82464908940753b77ebf61a10d 5189fe3d88b7d0154758379a877533fe364dec87 ab67dd7818ff2d0910f3fd9bfca9412d85de4424 ecd6a89381a34d4bcd07593a2e377656d070a7ed 060b3d377b0a0d318f630beb7fe4d8f41b99981c
2015-07-24qt: Force TLS1.0+ for SSL connectionsWladimir J. van der Laan
Github-Pull: #6384 Rebased-From: 15e26a6a9afe299b9ca6fced73b876644365879b
2015-07-20Fix warning introduced by #6412Wladimir J. van der Laan
SOCKET are defined as unsigned integers, thus always >=0. Rebased-From: 89289d875da108c42ca013f33597eda46cb6eb53
2015-07-20Test whether created sockets are select()ablePieter Wuille
Conflicts: src/net.cpp Rebased-From: d422f9b1fdb42a51aadaa1bbc157542dca2feb17
2015-07-17qt: periodic translations updateWladimir J. van der Laan
2015-07-17Updated URL location of netinstall for Debian฿tcDrak
Github-Pull: #6439 Rebased-From: 09d4ddf1c5841b757c2676d508a68baa2dbdc4c7