aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-04-25lock cs_main for chainActiveKaz Wesley
ActivateBestChain uses chainActive after releasing the lock; reorder operations to move all access to synchronized object into existing LOCK(cs_main) block.
2016-04-25lock cs_main for State/MisbehavingKaz Wesley
ProcessMessage calls State(...) and Misbehaving(...) without holding the required lock; add LOCK(cs_main) blocks.
2016-04-25Fixing comment in script_test.json test caseChris Stewart
2016-04-25qt: Make it possible to show details for multiple transactionsWladimir J. van der Laan
A small GUI annoyance for me has always been that it's impossible to have multiple transaction detail windows open, for example to compare transactions. This patch makes the window non-modal so that it is possible to open transaction details at will.
2016-04-25Merge #7688: List solvability in listunspent output and improve helpWladimir J. van der Laan
c3932b3 List solvability in listunspent output and improve help (Pieter Wuille)
2016-04-25Add tests for CCoins deserializationPieter Wuille
2016-04-25Fix OOM bug: UTXO entries with invalid script lengthPieter Wuille
2016-04-25CDataStream::ignore Throw exception instead of assert on negative nSize.Patrick Strateman
Previously disk corruption would cause an assert instead of an exception.
2016-04-25Treat overly long scriptPubKeys as unspendablePieter Wuille
2016-04-25Introduce constant for maximum CScript lengthPieter Wuille
2016-04-25Merge #7881: Update release processWladimir J. van der Laan
f154470 [contrib] Remove reference to sf and add doc to verify.sh (MarcoFalke) 182bec4 contrib: remove hardcoded version from verify.sh (Wladimir J. van der Laan) c907f4d doc: Update release process (Wladimir J. van der Laan)
2016-04-25[contrib] Remove reference to sf and add doc to verify.shMarcoFalke
2016-04-25contrib: remove hardcoded version from verify.shWladimir J. van der Laan
Closes #7595 as by removing the hardcoded version number from `verify.sh`.
2016-04-25doc: Update release processWladimir J. van der Laan
The actual release process quite diverged from what was written here, also clarify things a bit.
2016-04-25Merge #7927: Minor changes to dbwrapper to simplify support for other databasesWladimir J. van der Laan
869cf12 dbwrapper: Move `HandleError` to `dbwrapper_private` (Wladimir J. van der Laan) b69836d dbwrapper: Pass parent CDBWrapper into CDBBatch and CDBIterator (Wladimir J. van der Laan) 878bf48 dbwrapper: Remove CDBWrapper::GetObfuscateKeyHex (Wladimir J. van der Laan) 74f7b12 dbwrapper: Remove throw keywords in function signatures (Wladimir J. van der Laan)
2016-04-24CAddrMan::Deserialize handle corrupt serializations better.Patrick Strateman
2016-04-23[qa] mininode: Unfiddle strings into bytesMarcoFalke
2016-04-23dbwrapper: Move `HandleError` to `dbwrapper_private`Wladimir J. van der Laan
HandleError is implementation-specific.
2016-04-23dbwrapper: Pass parent CDBWrapper into CDBBatch and CDBIteratorWladimir J. van der Laan
Pass parent wrapper directly instead of obfuscation key. This makes it possible for other databases which re-use this code to use other properties from the database. Add a namespace dbwrapper_private for private functions to be used only in dbwrapper.h/cpp and dbwrapper_tests.
2016-04-23dbwrapper: Remove CDBWrapper::GetObfuscateKeyHexWladimir J. van der Laan
It is an unnecessary method as it is used only two times and only internally, and the whole implementation is HexStr(obfuscate_key).
2016-04-23dbwrapper: Remove throw keywords in function signaturesWladimir J. van der Laan
Using throw() specifications in function signatures is not only not required in C++, it is considered deprecated for [various reasons](https://stackoverflow.com/questions/1055387/throw-keyword-in-functions-signature). It is not implemented by any of the common C++ compilers. The usage is also inconsistent with the rest of the source code.
2016-04-22push back getaddednodeinfo dead valueinstagibbs
2016-04-22Merge #7925: qt: Fix out-of-tree GUI buildsWladimir J. van der Laan
f59dceb qt: Fix out-of-tree GUI builds (Wladimir J. van der Laan)
2016-04-22qt: Fix out-of-tree GUI buildsWladimir J. van der Laan
Without this patch: - When I compile the GUI from the bitcoin directory itself, it works as expected. - When I build the GUI in an out-of-tree build, I cannot get it to select tabs. When I click, say the "Receive" tab nothing happens, the button selects but it doesn't switch the page. The rest - even the debug window - seems to work. See full discussion here: https://github.com/bitcoin/bitcoin/pull/7911#issuecomment-212413442 This turned out to be caused by a mismatch in the arguments to moc, preventing it from finding `bitcoin-config.h`. Fix this by passing `$(DEFAULT_INCLUDES)` to it, which gets set to the appropriate path by autoconf itself.
2016-04-22Merge #7911: leveldb: integrate leveldb into our buildsystemWladimir J. van der Laan
a4625ac leveldb: integrate leveldb into our buildsystem (Cory Fields)
2016-04-22Merge #7922: CBase58Data::SetString: cleanse the full vectorWladimir J. van der Laan
5770449 CBase58Data::SetString: cleanse the full vector (Kaz Wesley)
2016-04-22Merge #7919: Fix headers announcements edge caseWladimir J. van der Laan
3a99fb2 Fix headers announcements edge case (Suhas Daftuar)
2016-04-22Merge #7816: [Wallet] slighly refactor GetOldestKeyPoolTime()Wladimir J. van der Laan
9f7336b [Wallet] slightly refactor GetOldestKeyPoolTime() (Jonas Schnelli)
2016-04-21CBase58Data::SetString: cleanse the full vectorKaz Wesley
SetString seems to be passing the length of the wrong variable to memory_cleanse, resulting in the last byte of the temporary buffer not being securely erased.
2016-04-21Improve worst-case behavior of CScript::FindAndDeletePatrick Strateman
Thanks to Sergio Lerner for identifying this issue and suggesting this kind of solution.
2016-04-21travis: switch to TrustyCory Fields
2016-04-21depends: mac deploy Py3 compatibilityWladimir J. van der Laan
This fixes the gitian MacOSX build, it was broken in #7723. The patch to `native_mac_alias` should probably make it upstream.
2016-04-21Merge #7912: Tests: Fix deserialization of reject messagesMarcoFalke
807fa47 Tests: Fix deserialization of reject messages (Suhas Daftuar)
2016-04-21Merge #7921: [contrib] verify-commits: Add MarcoFalke fingerprintWladimir J. van der Laan
fa24329 [contrib] verify-commits: Add MarcoFalke fingerprint (MarcoFalke)
2016-04-21[contrib] verify-commits: Add MarcoFalke fingerprintMarcoFalke
2016-04-21Merge #7916: Explicitly pass CChainParams& to DisconnectTip()Wladimir J. van der Laan
176869f Explicitly pass CChainParams to ConnectBlock (face) d0a6353 Pass CChainParams to DisconnectTip() (face) 764d237 Globals: Explicitly pass const CChainParams& to UpdateTip() (Jorge Timón)
2016-04-21Merge #7913: Fix for incorrect locking in GetPubKey() (keystore.cpp)Pieter Wuille
220f950 Fix for incorrect locking in GetPubKey() (keystore.cpp) (Yuri Zhykin)
2016-04-21Merge #7868: net: Split DNS resolving functionality out of net structuresPieter Wuille
d39f5b4 net: disable resolving from storage structures (Cory Fields) 3675699 net: resolve outside of storage structures (Cory Fields) a98cd1f net: manually resolve dns seed sources (Cory Fields) e9fc71e net: require lookup functions to specify all arguments (Cory Fields)
2016-04-21Move bloom and feerate filtering to just prior to tx sending.Gregory Maxwell
This will avoid sending more pointless INVs around updates, and prevents using filter updates to timetag transactions. Also adds locking for fRelayTxes.
2016-04-21Return mempool queries in dependency orderPieter Wuille
2016-04-21Handle mempool requests in send loop, subject to tricklePieter Wuille
By eliminating queued entries from the mempool response and responding only at trickle time, this makes the mempool no longer leak transaction arrival order information (as the mempool itself is also sorted)-- at least no more than relay itself leaks it.
2016-04-21Split up and optimize transaction and block inv queuesPieter Wuille
2016-04-20Fix headers announcements edge caseSuhas Daftuar
Previously we would assert that if every block in vBlockHashesToAnnounce is in chainActive, then the blocks to be announced must connect. However, there are edge cases where this assumption could be violated (eg using invalidateblock / reconsiderblock), so just check for this case and revert to inv-announcement instead.
2016-04-20net: disable resolving from storage structuresCory Fields
CNetAddr/CService/CSubnet can no longer resolve DNS.
2016-04-20net: resolve outside of storage structuresCory Fields
Rather than allowing CNetAddr/CService/CSubNet to launch DNS queries, require that addresses are already resolved. This greatly simplifies async resolve logic, and makes it harder to accidentally leak DNS queries.
2016-04-20net: manually resolve dns seed sourcesCory Fields
Note: Some seeds aren't actually returning an IP for their name entries, so they're being added to addrman with a source of [::]. This commit shouldn't change that behavior, for better or worse.
2016-04-20Explicitly pass CChainParams to ConnectBlockface
2016-04-20Tests: Fix deserialization of reject messagesSuhas Daftuar
Assume that reject messages for blocks or transactions due to reason REJECT_MALFORMED will not include the hash of the block or tx being rejected.
2016-04-20Fix for incorrect locking in GetPubKey() (keystore.cpp)Yuri Zhykin
2016-04-20Eliminate TX trickle bypass, sort TX invs for privacy and priority.Gregory Maxwell
Previously Bitcoin would send 1/4 of transactions out to all peers instantly. This causes high overhead because it makes >80% of INVs size 1. Doing so harms privacy, because it limits the amount of source obscurity a transaction can receive. These randomized broadcasts also disobeyed transaction dependencies and required use of the orphan pool. Because the orphan pool is so small this leads to poor propagation for dependent transactions. When the bypass wasn't in effect, transactions were sent in the order they were received. This avoided creating orphans but undermines privacy fairly significantly. This commit: Eliminates the bypass. The bypass is replaced by halving the average delay for outbound peers. Sorts candidate transactions for INV by their topological depth then by their feerate (then hash); removing the information leakage and providing priority service to higher fee transactions. Limits the amount of transactions sent in a single INV to 7tx/sec (and twice that for outbound); this limits the harm of low fee transaction floods, gives faster relay service to higher fee transactions. The 7 sounds lower than it really is because received advertisements need not be sent, and because the aggregate rate is multipled by the number of peers.