aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-11-06Merge #11610: [0.15] Update release notes for 0.15.1v0.15.1Wladimir J. van der Laan
4fcb915 Update release notes for 0.15.1 (MeshCollider) Pull request description: Adds info for the more notable changes since 0.15.0.1 to the release notes. ~Still needs the list of commits added too.~ (added in https://github.com/bitcoin/bitcoin/commit/2ce9e586d5b11e1f61af4db27b7326687d5e5124) Tree-SHA512: 54d30b1f0105d0d9d86a0dba017471bfa13b6bdd39fc4ee785cb515958c0f72874fb2d1e967076ac61762a16ff7b23b0eebc016f2ab0fb0aa9d6941fd6662042
2017-11-06Update release notes for 0.15.1MeshCollider
2017-11-05doc: Fill in 0.15.1 changelog and authors in release notesWladimir J. van der Laan
Tree-SHA512: 569816ca62319650d803b2dd4bc3a8791aaea1f573cd52a9e2cf220dc1ec08180a66fbb0ac44441f6b9f48cb9041ce08f56ff2e864b58510308b9a4b6898f8e8
2017-11-03Merge #11592: 0.15: Backportsv0.15.1rc1Pieter Wuille
8195cb0d7 rpc: further constrain the libevent workaround (Cory Fields) 34153a7e4 rpc: work-around an upstream libevent bug (Cory Fields) fc308a6cd Add unit test for stale tip checking (Suhas Daftuar) 2ed0647ac Add CConnmanTest to mutate g_connman in tests (João Barbosa) a607a95d8 Connect to an extra outbound peer if our tip is stale (Suhas Daftuar) 459f2db42 Track tip update time and last new block announcement from each peer (Suhas Daftuar) 49bf09018 net: Allow connecting to extra outbound peers (Suhas Daftuar) bb83fe190 Add release notes describing blockmaxweight deprecation (Matt Corallo) 4c82cea99 Use a sensible default for blockmaxweight (Matt Corallo) 7871a7d3b Deprecate confusing blockmaxsize, fix getmininginfo output (Matt Corallo) 6baa317b5 Fix minchainwork test for 0.15 backport (Suhas Daftuar) 55b7abfa8 Make p2p-acceptablock not an extended test (Matt Corallo) 5bec7744d [qa] test that invalid blocks on an invalid chain get a disconnect (Matt Corallo) 92d6105c4 Reject headers building on invalid chains by tracking invalidity (Matt Corallo) 51001d684 Accept unrequested blocks with work equal to our tip (Matt Corallo) c6e4d0ce8 Stop always storing blocks from whitelisted peers (Matt Corallo) e976c36dd Rewrite p2p-acceptblock in preparation for slight behavior changes (Matt Corallo) ec8dedff4 net: Add missing lock in ProcessHeadersMessage(...) (practicalswift) 59b210d9a Disconnect outbound peers relaying invalid headers (Suhas Daftuar) fc966bbd2 moveonly: factor out headers processing into separate function (Suhas Daftuar) e3272242e Add unit test for outbound peer eviction (Suhas Daftuar) 9961abf9e Permit disconnection of outbound peers on bad/slow chains (Suhas Daftuar) bf191a718 Disconnecting from bad outbound peers in IBD (Suhas Daftuar) d570aa429 Fix uninitialized g_connman crash in Shutdown() (MeshCollider) 0a5477c7e net: stop both net/net_processing before destroying them (Cory Fields) b4136f21c net: drop unused connman param (Cory Fields) dc897e53d net: use an interface class rather than signals for message processing (Cory Fields) 8aee55af3 net: pass CConnman via pointer rather than reference (Cory Fields) 6f279652b Rename fAddnode to a more-descriptive "manual_connection" (Matt Corallo) ffb6ea4e5 Add comment explaining forced processing of compact blocks (Suhas Daftuar) 2df65eeb9 qa: add test for minchainwork use in acceptblock (Suhas Daftuar) 3acec3878 Don't process unrequested, low-work blocks (Suhas Daftuar) 0e9d04bf0 [qa] Test nMinimumChainWork (Suhas Daftuar) da4908c3a Allow setting nMinimumChainWork on command line (Suhas Daftuar) 41088795d qa: Remove never used return value of sync_with_ping (MarcoFalke) f3457d0e8 qa: Make tmpdir option an absolute path (MarcoFalke) 9c8006dc3 Avoid opening copied wallet databases simultaneously (Russell Yanofsky) de7053f11 [wallet] Fix leak in CDB constructor (João Barbosa) fd79ed6b2 Ensure backupwallet fails when attempting to backup to source file (Tomas van der Wansem) d94fc336c scripted-diff: rename assert_raises_jsonrpc to assert_raises_rpc error (John Newbery) 623de0acb [tests] do not allow assert_raises_message to be called with JSONRPCException (John Newbery) 5b728c8e9 [tests] remove direct testing on JSONRPCException from individual test cases (John Newbery) Pull request description: Tree-SHA512: 9fdb5c47844a899271023d8d445f7fc728e3ad71916490cd9783464684967594b07cda05dd644b722bfcea9fade74d06cfc501e1a68abf118d6d03fbbf7d7707
2017-11-02rpc: further constrain the libevent workaroundCory Fields
The bug was introduced in 2.1.6-beta, versions before that don't need the workaround. Github-Pull: #11593 Rebased-From: 97932cd2689659addfbb58dc6148928b73af3bd0
2017-11-02rpc: work-around an upstream libevent bugCory Fields
A rare race condition may trigger while awaiting the body of a message, see upsteam commit 5ff8eb26371c4dc56f384b2de35bea2d87814779 for details. This may fix some reported rpc hangs/crashes. Github-Pull: #11593 Rebased-From: 6b58360f9b64eb0b680a662fdfd590e47f115f44
2017-11-02build: Bump version to 0.15.1Wladimir J. van der Laan
Tree-SHA512: d998b31250208078414a27431d21b847592bdb1e4bd7eb1df6bee7f67671a4124dcaa2971ebef52304528080ab2d2ff6553b7d7138d948a364e64fc4e37dacd3
2017-11-02Add unit test for stale tip checkingSuhas Daftuar
Github-Pull: #11560 Rebased-From: 626291508c433488439b662f2e88882048fb59fb
2017-11-02Add CConnmanTest to mutate g_connman in testsJoão Barbosa
Github-Pull: #11560 Rebased-From: 83df25736ebaa23777e965d265ed677a8d79f23f
2017-11-02Connect to an extra outbound peer if our tip is staleSuhas Daftuar
If our tip hasn't updated in a while, that may be because our peers are not relaying blocks to us that we would consider valid. Allow connection to an additional outbound peer in that circumstance. Also, periodically check to see if we are exceeding our target number of outbound peers, and disconnect the one which has least recently announced a new block to us (choosing the newest such peer in the case of tie). Github-Pull: #11560 Rebased-From: ac7b37cd2bd612a64a4009ba82f1cd1d57f37434
2017-11-02Track tip update time and last new block announcement from each peerSuhas Daftuar
Github-Pull: #11560 Rebased-From: db32a6589720e5b15931cef82e477118dfd92669
2017-11-02net: Allow connecting to extra outbound peersSuhas Daftuar
Github-Pull: #11560 Rebased-From: 2d4327db1973a354e9e4153de6958d49120fcde8
2017-11-02Add release notes describing blockmaxweight deprecationMatt Corallo
Github-Pull: #11100 Rebased-From: 6f703e9bf11c5f2fcb0fca0e4243fce6b4b9d35a
2017-11-02Use a sensible default for blockmaxweightMatt Corallo
No sensible user will ever keep the default settings here, so not having sensible defaults only serves to screw users who are paying less attention, which makes for terrible defaults. Github-Pull: #11100 Rebased-From: 3dc263c9b9068ee9793b6c7a0023eff16d70fb8f
2017-11-02Deprecate confusing blockmaxsize, fix getmininginfo outputMatt Corallo
* This removes block-size-limiting code in favor of GBT clients doing the limiting themselves (if at all). * -blockmaxsize is deprecated and only used to calculate an implied blockmaxweight, addressing confusion from multiple users. * getmininginfo's currentblocksize return value was returning garbage values, and has been removed, also removing a GetSerializeSize call in some block generation inner loops and potentially addressing some performance edge cases. Github-Pull: #11100 Rebased-From: ba206d2c63a8d3cbd4a8dd47e9ef126af1bb3bb9
2017-11-02Fix minchainwork test for 0.15 backportSuhas Daftuar
2017-11-02Make p2p-acceptablock not an extended testMatt Corallo
Github-Pull: #11531 Rebased-From: f3d4adfa6ff5db180ec09d93f78cdc8bfda26f96
2017-11-02[qa] test that invalid blocks on an invalid chain get a disconnectMatt Corallo
Github-Pull: #11531 Rebased-From: 00dcda60f6ee63d35bec640f27efe2338dd71270
2017-11-02Reject headers building on invalid chains by tracking invalidityMatt Corallo
This tracks the set of all known invalid-themselves blocks (ie blocks which we attempted to connect but which were found to be invalid). This is used to cheaply check if new headers build on an invalid chain. While we're at it we also resolve an edge-case in invalidateblock on pruned nodes which results in them needing a reindex if they fail to reorg. Github-Pull: #11531 Rebased-From: 015a5258adffb0cf394f387a95ac9c8afc34cfc3
2017-11-02Accept unrequested blocks with work equal to our tipMatt Corallo
This is a simple change that makes our accept requirements the same as our request requirements, (ever so slightly) further decoupling our consensus logic from our FindNextBlocksToDownload logic in net_processing. Github-Pull: #11531 Rebased-From: 932f118e6a3779bb3d6c3cc83963cf34ac150e42
2017-11-02Stop always storing blocks from whitelisted peersMatt Corallo
There is no reason to wish to store blocks on disk always just because a peer is whitelisted. This appears to be a historical quirk to avoid breaking things when the accept limits were added. Github-Pull: #11531 Rebased-From: 3d9c70ca0fd5d42f31114b689714af1825f0ed30
2017-11-02Rewrite p2p-acceptblock in preparation for slight behavior changesMatt Corallo
Removes checking whitelisted behavior (which will be removed, the difference in behavior here makes little sense) and no longer requires that blocks at the same work as our tip be dropped if not requested (in part because we *do* request those blocks). Github-Pull: #11531 Rebased-From: 3b4ac43bc371561b5fa559bccb17dc0702bd4b69
2017-11-02net: Add missing lock in ProcessHeadersMessage(...)practicalswift
Reading the variable mapBlockIndex requires holding the mutex cs_main. The new "Disconnect outbound peers relaying invalid headers" code added in commit 37886d5e2f9992678dea4b1bd893f4f10d61d3ad and merged as part of #11568 two days ago did not lock cs_main prior to accessing mapBlockIndex. Github-Pull: #11578 Rebased-From: 2530bf27b72e53cc6ffec27de35f3b487984833d
2017-11-02Disconnect outbound peers relaying invalid headersSuhas Daftuar
Github-Pull: #11568 Rebased-From: 37886d5e2f9992678dea4b1bd893f4f10d61d3ad
2017-11-02moveonly: factor out headers processing into separate functionSuhas Daftuar
ProcessMessages will now return earlier when processing headers messages, rather than continuing on (and do nothing). Github-Pull: #11568 Rebased-From: 4637f18522429473e68f6f512a03040e121a446d
2017-11-02Add unit test for outbound peer evictionSuhas Daftuar
Github-Pull: #11490 Rebased-From: e065249c014a070a8799b2ff947af5b8f012c5c1
2017-11-02Permit disconnection of outbound peers on bad/slow chainsSuhas Daftuar
Currently we have no rotation of outbound peers. If an outbound peer stops serving us blocks, or is on a consensus-incompatible chain with less work than our tip (but otherwise valid headers), then we will never disconnect that peer, even though that peer is using one of our 8 outbound connection slots. Because we rely on our outbound peers to find an honest node in order to reach consensus, allowing an incompatible peer to occupy one of those slots is undesirable, particularly if it is possible for all such slots to be occupied by such peers. Protect against this by always checking to see if a peer's best known block has less work than our tip, and if so, set a 20 minute timeout -- if the peer is still not known to have caught up to a chain with as much work as ours after 20 minutes, then send a single getheaders message, wait 2 more minutes, and if a better header hasn't been received by then, disconnect that peer. Note: - we do not require that our peer sync to the same tip as ours, just an equal or greater work tip. (Doing otherwise would risk partitioning the network in the event of a chain split, and is also unnecessary.) - we pick 4 of our outbound peers and do not subject them to this logic, to be more conservative. We don't wish to permit temporary network issues (or an attacker) to excessively disrupt network topology. Github-Pull: #11490 Rebased-From: 5a6d00c6defc587e22c93e63029fdd538ce8858d
2017-11-02Disconnecting from bad outbound peers in IBDSuhas Daftuar
When in IBD, we'd like to use all our outbound peers to help us sync the chain. Disconnect any outbound peers whose headers have insufficient work. Github-Pull: #11490 Rebased-From: c60fd71a65e841efe187992f46c583a704cc37f5
2017-11-02Fix uninitialized g_connman crash in Shutdown()MeshCollider
Github-Pull: #11326 Rebased-From: 77939f27f7dc42640ebfb9fe52490a2ddacc3ad4
2017-11-02net: stop both net/net_processing before destroying themCory Fields
This should avoid either attempting to use an invalid reference/pointer to the other. Github-Pull: #10756 Rebased-From: 2525b972af6645ca239ac1078cffb132b402bfbb
2017-11-02net: drop unused connman paramCory Fields
The copy in PeerLogicValidation can be used instead. Github-Pull: #10756 Rebased-From: 80e2e9d0cec890c5d2f81360ebb81e81c07ccb8c
2017-11-02net: use an interface class rather than signals for message processingCory Fields
Drop boost signals in favor of a stateful class. This will allow the message processing loop to actually move to net_processing in a future step. Github-Pull: #10756 Rebased-From: 8ad663c1fa88d68843e45580deced56112343183
2017-11-02net: pass CConnman via pointer rather than referenceCory Fields
There are a few too many edge-cases here to make this a scripted diff. The following commits will move a few functions into PeerLogicValidation, where the local connman instance can be used. This change prepares for that usage. Github-Pull: #10756 Rebased-From: 28f11e9406b185dc87144f1f29af0d93eb115b4e
2017-11-02Rename fAddnode to a more-descriptive "manual_connection"Matt Corallo
Github-Pull: #11456 Rebased-From: 57edc0b0c86549020a39cd65f96496e9771c4769
2017-11-02Add comment explaining forced processing of compact blocksSuhas Daftuar
Github-Pull: #11458 Rebased-From: 01b52cedd42f50a93b40981c91af7c12de6e45ce
2017-11-02qa: add test for minchainwork use in acceptblockSuhas Daftuar
Github-Pull: #11458 Rebased-From: 08fd822771bf8dae1c21698811f57aa691b2f25d
2017-11-02Don't process unrequested, low-work blocksSuhas Daftuar
A peer could try to waste our resources by sending us unrequested blocks with low work, eg to fill up our disk. Since e2652002b6011f793185d473f87f1730c625593b we no longer request blocks until we know we're on a chain with more than nMinimumChainWork (our anti-DoS threshold), but we would still process unrequested blocks that had more work than our tip. This commit fixes that behavior. Github-Pull: #11458 Rebased-From: ce8cd7a7da9174ab151172fc0ce97b5164637cf3
2017-11-02[qa] Test nMinimumChainWorkSuhas Daftuar
Nodes don't consider themselves out of "initial block download" until their active chain has more work than nMinimumChainWork. While in initial block download, nodes won't relay blocks to their peers, so test that this parameter functions as intended by verifying that block relay only succeeds past a given node once its nMinimumChainWork has been exceeded. Github-Pull: #10357 Rebased-From: eac64bb7a3b6aba747403b23b3b1d3609843f8db
2017-11-02Allow setting nMinimumChainWork on command lineSuhas Daftuar
Github-Pull: #10357 Rebased-From: 0311836f6927aec4ba5687ea12af35df3c509682
2017-11-01qa: Remove never used return value of sync_with_pingMarcoFalke
Github-Pull: #11472 Rebased-From: fafa0039708e15d1067be091b2bfc10195afa480
2017-11-01qa: Make tmpdir option an absolute pathMarcoFalke
This should fix issues with the multiwallet test and symlinks when the tmpdir is a relative path. Rather than fixing os.symlink to work with paths relative to a directory descriptor, which does not work on Windows, normalize the path instead. Github-Pull: #11472 Rebased-From: fa9de370b17297d6dd542da627c8dd2b31aec340
2017-11-01Avoid opening copied wallet databases simultaneouslyRussell Yanofsky
Make sure wallet databases have unique fileids. If they don't, throw an error. BDB caches do not work properly when more than one open database has the same fileid, because values written to one database may show up in reads to other databases. Bitcoin will never create different databases with the same fileid, but users can create them by manually copying database files. BDB caching bug was reported by Chris Moore <dooglus@gmail.com> https://github.com/bitcoin/bitcoin/issues/11429 Fixes #11429 Github-Pull: #11476 Rebased-From: 478a89c1ef79a75275d1b508122c06eee9386b2d
2017-11-01[wallet] Fix leak in CDB constructorJoão Barbosa
Now using a std::unique_ptr, the Db instance is correctly released when CDB initialization fails. The internal CDB state and mapFileUseCount are only mutated when the CDB initialization succeeds. Github-Pull: #11492 Rebased-From: 7104de8b1f3a31d3a60009b5dc376adbedac6a9c
2017-11-01Ensure backupwallet fails when attempting to backup to source fileTomas van der Wansem
Previous behaviour was to destroy the wallet (to zero-length) Github-Pull: #11376 Rebased-From: 5d465e396249a0e2cc60b16984a2bdbe4c8993c3
2017-11-01scripted-diff: rename assert_raises_jsonrpc to assert_raises_rpc errorJohn Newbery
-BEGIN VERIFY SCRIPT- sed -i 's/assert_raises_jsonrpc/assert_raises_rpc_error/g' test/functional/*py test/functional/test_framework/*py -END VERIFY SCRIPT- Github-Pull: #10853 Rebased-From: 47ba8cf71e9a3a6f7452488fc9ab3b350f0fae36
2017-11-01[tests] do not allow assert_raises_message to be called with JSONRPCExceptionJohn Newbery
Github-Pull: #10853 Rebased-From: 677d893ff758b61f66203730da224bd7ef8f0b43
2017-11-01[tests] remove direct testing on JSONRPCException from individual test casesJohn Newbery
Github-Pull: #10853 Rebased-From: 5864e9c1611e6034a8d49b78231abe6bfade686d
2017-11-01Merge #11550: [0.15.1] qa: BackportsWladimir J. van der Laan
01223a0 [verify-commits] Allow revoked keys to expire (Matt Corallo) adbc9d1 qa: Fix race condition in sendheaders.py (Suhas Daftuar) fdad04e qa: Fix replace-by-fee race condition failures (Suhas Daftuar) Pull request description: Tree-SHA512: e1532a02a84d9406cc78975a59201dbde78750217d504896e7e448aa86d6b4df98dc959fae440044c8f9aedebf296a9537b18e281976344ca8e4b705d7bd50b0
2017-11-01Make listsinceblock refuse unknown block hashRussell Yanofsky
Change suggested by Cory Fields <cory-nospam-@coryfields.com> who noticed listsinceblock would ignore invalid block hashes causing it to return a completely unfiltered list of transactions. Github-Pull: #11565 Rebased-From: 659b2061c4329472a45e913c5d45e6ab180600a3 Tree-SHA512: 2091a830b730421b49c806cb83a16c7da2ec0a7adac2bac0585324aad12a32bb99a840264c3d346937ea84786fac56e44befb6641511a417977803875efe5a21
2017-11-01[Docs] Update OpenBSD Build Instructions for OpenBSD 6.2fanquake
Github-Pull: #11442 Rebased-From: 9d30f54ef1c9412f2c71b89664952dd95b6ef959 Tree-SHA512: fc7ae48126ed9569bda7d444a2464c09ba3db2398d05933df7e1ca92a0d03c2bd3c370fea977d1a3ffe70c76e9caf45ee69d41c9dc24abcc0139e4146d8c1abd