Skip to content

Commit 441eead

Browse files
stickies-vbitschmidty
authored andcommitted
News362: add review club
1 parent ae5ef3f commit 441eead

File tree

1 file changed

+53
-4
lines changed

1 file changed

+53
-4
lines changed

_posts/en/newsletters/2025-07-11-newsletter.md

Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,57 @@ Club][] meeting, highlighting some of the important questions and
3131
answers. Click on a question below to see a summary of the answer from
3232
the meeting.*
3333

34-
FIXME:stickies-v
34+
[Improve TxOrphanage denial of service bounds][review club 31829] is a
35+
PR by [glozow][gh glozow] that changes `TxOrphanage` eviction logic to
36+
guarantee each peer the resources for at least 1 maximum-size package
37+
worth of orphan resolution. These new guarantees significantly improve
38+
[1-parent-1-child opportunistic package relay][1p1c relay],
39+
especially (but not only) under adversarial conditions.
40+
41+
The PR modifies existing global orphanage limits, and introduces new
42+
per-peer ones. Together, they protect against both excessive memory
43+
usage and computational exhaustion. The PR also replaces the
44+
random eviction approach with an algorithmic one, calculating a per-peer
45+
DoS Score.
46+
47+
_Note: the PR has undergone [a few significant changes][review club
48+
31829 changes] since the Review Club, most importantly using a latency
49+
score limit instead of an announcement limit._
3550

3651
{% include functions/details-list.md
37-
q0="FIXME"
38-
a0="FIXME"
39-
a0link="https://bitcoincore.reviews/32317#l-37FIXME"
52+
q0="Why is the current TxOrphanage global maximum size limit of 100
53+
transactions with random eviction problematic?"
54+
a0="It allows a malicious peer to flood a node with orphan
55+
transactions, eventually causing all legitimate transactions from
56+
other peers to be evicted. This can be used to prevent opportunistic
57+
1-parent-1-child transaction relay from succeeding, since the child wouldn't
58+
be able to stay in the orphanage for long."
59+
a0link="https://bitcoincore.reviews/31829#l-12"
60+
q1="How does the new eviction algorithm work at a high level?"
61+
a1="Eviction is no longer random. The algorithm identifies the
62+
“worst-behaving” peer based on a “DoS score” and evicts the oldest
63+
transaction announcement from that peer. This protects well-behaved
64+
peers from having their transactions' children evicted by a
65+
misbehaving peer."
66+
a1link="https://bitcoincore.reviews/31829#l-19"
67+
q2="Why is it desirable to allow peers to exceed their individual
68+
limits while the global limits are not reached?"
69+
a2="Peers may be using more resources simply because they are a
70+
helpful peer, who's broadcasting useful transactions such as CPFPs."
71+
a2link="https://bitcoincore.reviews/31829#l-25"
72+
q3="The new algorithm evicts announcements instead of transactions.
73+
What is the difference and why does it matter?"
74+
a3="An announcement is a pair of a transaction and the peer who sent
75+
it. By evicting announcements, a malicious peer cannot evict a
76+
transaction that was also sent by an honest peer."
77+
a3link="https://bitcoincore.reviews/31829#l-34"
78+
q4="What is a peer’s “DoS Score” and how is it calculated?"
79+
a4="A peer's DoS score is the maximum of its “memory score” (memory
80+
used / memory reserved) and “CPU score” (announcements made /
81+
announcement limit). Using a single combined score simplifies eviction
82+
logic into a single loop that targets the peer most aggressively
83+
exceeding either of its limits."
84+
a4link="https://bitcoincore.reviews/31829#l-133"
4085
%}
4186

4287
## Releases and release candidates
@@ -94,3 +139,7 @@ repo], and [BINANAs][binana repo]._
94139
[news358 bolts]: /en/newsletters/2025/06/13/#bolts-1243
95140
[news312 spv]: /en/newsletters/2024/07/19/#bdk-1489
96141
[news360 bip380]: /en/newsletters/2025/06/27/#bips-1803
142+
[review club 31829]: https://bitcoincore.reviews/31829
143+
[gh glozow]: https://github.com/glozow
144+
[review club 31829 changes]: https://github.com/bitcoin/bitcoin/pull/31829#issuecomment-3046495307
145+
[1p1c relay]: /en/bitcoin-core-28-wallet-integration-guide/#one-parent-one-child-1p1c-relay

0 commit comments

Comments
 (0)