Age | Commit message (Collapse) | Author |
|
Github-Pull: #11560
Rebased-From: 626291508c433488439b662f2e88882048fb59fb
|
|
Github-Pull: #11560
Rebased-From: 83df25736ebaa23777e965d265ed677a8d79f23f
|
|
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
|
|
Github-Pull: #11560
Rebased-From: db32a6589720e5b15931cef82e477118dfd92669
|
|
Github-Pull: #11560
Rebased-From: 2d4327db1973a354e9e4153de6958d49120fcde8
|
|
Github-Pull: #11100
Rebased-From: 6f703e9bf11c5f2fcb0fca0e4243fce6b4b9d35a
|
|
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
|
|
* 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
|
|
|
|
Github-Pull: #11531
Rebased-From: f3d4adfa6ff5db180ec09d93f78cdc8bfda26f96
|
|
Github-Pull: #11531
Rebased-From: 00dcda60f6ee63d35bec640f27efe2338dd71270
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
Github-Pull: #11568
Rebased-From: 37886d5e2f9992678dea4b1bd893f4f10d61d3ad
|
|
ProcessMessages will now return earlier when processing headers
messages, rather than continuing on (and do nothing).
Github-Pull: #11568
Rebased-From: 4637f18522429473e68f6f512a03040e121a446d
|
|
Github-Pull: #11490
Rebased-From: e065249c014a070a8799b2ff947af5b8f012c5c1
|
|
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
|
|
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
|
|
Github-Pull: #11326
Rebased-From: 77939f27f7dc42640ebfb9fe52490a2ddacc3ad4
|
|
This should avoid either attempting to use an invalid reference/pointer to the
other.
Github-Pull: #10756
Rebased-From: 2525b972af6645ca239ac1078cffb132b402bfbb
|
|
The copy in PeerLogicValidation can be used instead.
Github-Pull: #10756
Rebased-From: 80e2e9d0cec890c5d2f81360ebb81e81c07ccb8c
|
|
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
|
|
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
|
|
Github-Pull: #11456
Rebased-From: 57edc0b0c86549020a39cd65f96496e9771c4769
|
|
Github-Pull: #11458
Rebased-From: 01b52cedd42f50a93b40981c91af7c12de6e45ce
|
|
Github-Pull: #11458
Rebased-From: 08fd822771bf8dae1c21698811f57aa691b2f25d
|
|
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
|
|
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
|
|
Github-Pull: #10357
Rebased-From: 0311836f6927aec4ba5687ea12af35df3c509682
|
|
Github-Pull: #11472
Rebased-From: fafa0039708e15d1067be091b2bfc10195afa480
|
|
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
|
|
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
|
|
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
|
|
Previous behaviour was to destroy the wallet (to zero-length)
Github-Pull: #11376
Rebased-From: 5d465e396249a0e2cc60b16984a2bdbe4c8993c3
|
|
-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
|
|
Github-Pull: #10853
Rebased-From: 677d893ff758b61f66203730da224bd7ef8f0b43
|
|
Github-Pull: #10853
Rebased-From: 5864e9c1611e6034a8d49b78231abe6bfade686d
|
|
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
|
|
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
|
|
Github-Pull: #11442
Rebased-From: 9d30f54ef1c9412f2c71b89664952dd95b6ef959
Tree-SHA512: fc7ae48126ed9569bda7d444a2464c09ba3db2398d05933df7e1ca92a0d03c2bd3c370fea977d1a3ffe70c76e9caf45ee69d41c9dc24abcc0139e4146d8c1abd
|
|
Github-Pull: #11530
Rebased-From: fa81534d068cb5479684ed9fb073dc51532b91ca
Tree-SHA512: 97bc91760a3284a9b60dcde04e789aed3c83539ec6621cb38dbc5bd852bfc0cdcaffceff7ca6de0c64f00149e6774d7dd651520b39876a674f1e82efba98945d
|
|
Github-Pull: #11539
Rebased-From: d23be309c2c45f655d5f5405e031833fb4b6bbb4
|
|
Github-Pull: #11538
Rebased-From: 6d51eaefe924bfaf2b0f4928dd6020023733480f
|
|
Github-Pull: #11538
Rebased-From: c96b2e4f096780c75e3fa8acba496d71322583a1
|
|
up to date.
Github-Pull: #11527
Rebased-From: 132d3225f325b84afc282638c9e99623d249a52c
Tree-SHA512: 3738afd8070fa601b5039e268088b7f3827613dbc37fae192b96b13c91f56d41fa3209533a3cad876c4e673b19015aabfce331b0b5f46a0ac518d00816e912a4
|
|
This reverts commit aa2e0f09ec94dd0908f792ebc2249859ad174586.
Github-Pull: #11521
Rebased-From: 3d1c31126b8ac9fe18d151dc4e9cf8598dd77362
Tree-SHA512: 3c42bb2715853178f1fa950d7f0926a860a81b563606633cc58a67cf7218c80dd6545b9a89db387e6352b4caed38d7dd04d50c28547c340c032e2ba2f7c79173
|
|
The most recent update replaced the minimal image with a large one for the
'generic' image. Switching back to 'minimal' should reduce dependencies and
maybe speed us up some.
It should also eliminiate the need for aa2e0f09e.
Github-Pull: #11521
Rebased-From: a86e81b78fc2a2ecc827a7890cba21ed229957f2
Tree-SHA512: 40f07304c60b11876a172b7ac75cb738b2da4209d54370714a6e731485643fbb33925a422accd3e065dcaa4fea84a1268f37ca0a8ee83b8cf70a71a25b59fb6b
|