Core functional leftover-P2P follow-up: official p2p_compactblocks_blocksonly + p2p_blocksonly (37 run) - #125
Open
rearden-grok[bot] wants to merge 9 commits into
Open
Core functional leftover-P2P follow-up: official p2p_compactblocks_blocksonly + p2p_blocksonly (37 run)#125rearden-grok[bot] wants to merge 9 commits into
rearden-grok[bot] wants to merge 9 commits into
Conversation
Contributor
Author
|
Retrigger CI after push that did not start workflows. |
rearden-grok
Bot
force-pushed
the
core/p2p-followup
branch
2 times, most recently
from
August 18, 2026 16:10
9f9bc5a to
f1aeb2d
Compare
…ocksonly (36 run) -blocksonly stays off HB and getdata's MSG_WITNESS_BLOCK; relay peers request MSG_CMPCT_BLOCK after sendcmpct v2. Handshake advertises sendaddrv2. Low-work header announces log Core ignore/sync needles at the pending-path height; non-noban does not persist a low-work headers tree. INV of a known fork header may getdata missing bodies. minchainwork / invalid_messages / unrequested stay skip at their fresh official first-fails. Q-41 is 36/267.
Known-header INV getdata stole sendheaders inv_node and failed p2p_sendheaders wait_for_getdata / tip INV announce. Bodies still come from header announcements. Disconnect on a consensus-invalid block and hold it for getblock confirmations=-1. p2p_unrequested_blocks stays skip at :275.
Holding a consensus-invalid submitblock added a second chaintip and failed submitheader_invalid_parent_keeps_one_header_tip. Mark invalid and disconnect; do not hold. -blocksonly (relay off) must not sendcmpct(announce=1) after a new tip.
-blocksonly reports getnetworkinfo.localrelay=false and disconnects P2P txs and tx invs (whitelist relay still allowed). getpeerinfo gains relaytxes. RPC sendraw still accepts when P2P relay is off. p2p_blocksonly stays skip at inbound wait_for_tx (:48).
RPC sendraw notes unbroadcast after accept and re-announces so an inbound peer getdata's the tx (p2p_blocksonly.py:48). Unbroadcast INVs skip the 30s inbound age gate. getpeerinfo exposes whitelist permissions. Official p2p_blocksonly stays skip at first_peer → second_peer wait_for_tx (:74). Q-41 remains 36/267.
STEAL_CLAIMS is process-global. Parallel 256-job pool tests added 8+8 claims and failed steal_chunk_amortizes_claims on CI. Count only while that test is running; serialize the two 256-job cases.
Duplicate sendraw must not re-enter the unbroadcast set (mempool_unbroadcast.py:93). Unbroadcast skips the inbound age gate only when -blocksonly. Inbound announce waits unless noban or relay is off (mempool_reorg.py:71). Official mempool_reorg + mempool_unbroadcast Passed.
…draw testmempoolaccept rolls back with evict_live_txids while relay is off so sendraw can note unbroadcast (p2p_blocksonly.py:48). flush_tx_invs sync-writes INVs onto attached writers. Inbound + relay-on does not let clock_due or current_relay_seq snap INV/GetData a brand-new sendraw after mocktime +300 (mempool_reorg.py:122). Official p2p_blocksonly + mempool_reorg + mempool_unbroadcast Passed. Q-41 is 37/267.
rearden-grok
Bot
force-pushed
the
core/p2p-followup
branch
from
August 18, 2026 17:33
6eaafb3 to
690ee76
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Leftover-P2P follow-up after #116. Official unmodified
p2p_compactblocks_blocksonly.pyis whole-script green (run.sh --v2transport) and is nowrun(35→36).Product:
-blocksonlydoes not select BIP152 HB; it getdata'sMSG_WITNESS_BLOCK. Relay peers getdataMSG_CMPCT_BLOCKonly after the peer sendssendcmpctv2 (not by default — that brokefeature_csv_activation).sendaddrv2before verack.Ignoring low-work chain (height=N)/Synchronizing blockheaders, height: Nusing the pending-path height (14 one-header announces → 14). Non-noban does not persist a low-work headers tree; noban stores headers-only.Honest skip analogs (fresh official first-fails):
p2p_headers_sync_with_minchainwork.py:112— ~2032-blockgeneratetoaddress120s timeout (then 4110-block reorg +presynced_headers)p2p_invalid_messages.py:203— empty addrv2 Core log zoo (then oversized + v1test_resource_exhaustion)p2p_unrequested_blocks.py:225— INV getdata[0] is not the headers-only parentQ-41 is 36 / 267. Prior 35
runnames unchanged.Pins
Official
run.shgreen:p2p_compactblocks,p2p_compactblocks_hb(v1+v2),p2p_sendheaders,p2p_initial_headers_sync,mempool_reorg,p2p_block_sync(v1+v2),rpc_getchaintips,feature_bip68_sequence,feature_csv_activation.Do not merge unless asked.