Anthony Towns
ecb0a3e425
net_processing: Don't process tx after processing orphans
...
If we made progress on orphans, consider that enough work for this peer
for this round of ProcessMessages. This also allows cleaning up the api
for TxOrphange:GetTxToReconsider().
2023-01-25 18:15:12 +10:00
Anthony Towns
be2304676b
txorphange: Drop redundant originator arg from GetTxToReconsider
2023-01-25 18:13:42 +10:00
Anthony Towns
a4fe09973a
txorphanage: index workset by originating peer
2022-11-29 09:03:57 +10:00
Anthony Towns
7082ce3e88
scripted-diff: rename and de-globalise g_cs_orphans
...
-BEGIN VERIFY SCRIPT-
sed -i -e 's/static RecursiveMutex/mutable Mutex/' src/txorphanage.h
sed -i -e '/RecursiveMutex/d' src/txorphanage.cpp
sed -i -e 's/g_cs_orphans/m_mutex/g' $(git grep -l g_cs_orphans src/)
-END VERIFY SCRIPT-
2022-10-11 23:35:37 +10:00
Anthony Towns
733d85f79c
Move all g_cs_orphans locking to txorphanage
2022-10-11 23:35:32 +10:00
Anthony Towns
a936f41a5d
txorphanage: make m_peer_work_set private
2022-10-11 14:05:09 +10:00
Anthony Towns
3614819864
txorphange: move orphan workset to txorphanage
2022-10-11 14:04:49 +10:00
chinggg
b4b657ba57
refactor: log nEvicted
message in LimitOrphans
then return void
...
`LimitOrphans()` can log expired tx and it should log evicted tx as well
instead of returning the number for caller to print the message.
Since `LimitOrphans()` now return void, the redundant assertion check in
fuzz test is also removed.
2022-07-28 14:39:45 +08:00
Anthony Towns
f8c0688b94
scripted-diff: Update txorphanage naming convention
...
-BEGIN VERIFY SCRIPT-
sed -i 's/mapOrphanTransactionsByPrev/m_outpoint_to_orphan_it/g' src/txorphanage.h src/txorphanage.cpp
sed -i 's/mapOrphanTransactions/m_orphans/g' src/txorphanage.h src/txorphanage.cpp src/net_processing.cpp src/test/denialofservice_tests.cpp
sed -i 's/g_orphan_list/m_orphan_list/g' src/txorphanage.h src/txorphanage.cpp
sed -i 's/g_orphans_by_wtxid/m_wtxid_to_orphan_it/g' src/txorphanage.h src/txorphanage.cpp
sed -i 's/nMaxOrphans/max_orphans/g' src/txorphanage.h src/txorphanage.cpp
sed -i 's/COrphanTx/OrphanTx/g' src/txorphanage.h src/txorphanage.cpp src/test/denialofservice_tests.cpp
-END VERIFY SCRIPT-
2021-02-27 01:08:09 +10:00
Anthony Towns
6bd4963c06
txorphanage: Move functions and data into class
...
Collects all the orphan handling globals into a single member var in
net_processing, and ensures access is encapuslated into the interface
functions. Also adds doxygen comments for methods.
2021-02-27 01:07:55 +10:00
Anthony Towns
03257b832d
txorphanage: Extract EraseOrphansForBlock
...
Extract code that erases orphans when a new block is found into
EraseOrphansForBlock.
2021-02-27 00:31:09 +10:00
Anthony Towns
1041616d7e
txorphanage: Extract OrphanageAddTx
...
Extract code from AddOrphanTx into OrphanageAddTx.
2021-02-26 23:55:10 +10:00
Anthony Towns
f294da7274
txorphanage: Extract GetOrphanTx
...
Extract orphan lookup code into GetOrphanTx function.
2021-02-26 23:55:10 +10:00
Anthony Towns
83679ffc60
txorphanage: Extract HaveOrphanTx
...
Extract some common code into HaveOrphanTx function.
2021-02-26 23:55:10 +10:00
Anthony Towns
ee135c8d5b
txorphanage: Extract AddChildrenToWorkSet
...
Extract some common code into AddChildrenToWorkSet function.
(It's a hard knock life)
2021-02-26 23:55:10 +10:00
Anthony Towns
38a11c355a
txorphanage: Add lock annotations
...
EraseOrphansFor was called both with and without g_cs_orphans held,
correct that so that it's always called with it already held.
LimitOrphanTxSize was always called with g_cs_orphans held, so
add annotations and don't lock it a second time.
2021-02-26 23:55:10 +10:00
Anthony Towns
81dd57e5b1
txorphanage: Pass uint256 by reference instead of value
2021-02-26 23:55:07 +10:00
Anthony Towns
9d5313df7e
move-only: Add txorphanage module
...
This module captures orphan tracking code for tx relay.
Can be reviewed with --color-moved=dimmed-zebra
2021-02-26 23:55:03 +10:00