summaryrefslogtreecommitdiff
path: root/18/9de4089a8466d8025fbce023b6ba8dab4f153f
blob: 8b4b081460b8fb7de62b6a62137e0215f4f729dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
Return-Path: <pete@petertodd.org>
Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136])
 by lists.linuxfoundation.org (Postfix) with ESMTP id 62608C0070
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Fri, 23 Dec 2022 03:06:12 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by smtp3.osuosl.org (Postfix) with ESMTP id 2CF1760D94
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Fri, 23 Dec 2022 03:06:12 +0000 (UTC)
DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 2CF1760D94
Authentication-Results: smtp3.osuosl.org; dkim=pass (2048-bit key,
 unprotected) header.d=messagingengine.com header.i=@messagingengine.com
 header.a=rsa-sha256 header.s=fm2 header.b=AtttGGvS
X-Virus-Scanned: amavisd-new at osuosl.org
X-Spam-Flag: NO
X-Spam-Score: -1.602
X-Spam-Level: 
X-Spam-Status: No, score=-1.602 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, BITCOIN_OBFU_SUBJ=1, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001] autolearn=no autolearn_force=no
Received: from smtp3.osuosl.org ([127.0.0.1])
 by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id zeEgBhKiqCxg
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Fri, 23 Dec 2022 03:06:10 +0000 (UTC)
X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0
DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org A012D607FF
Received: from wout5-smtp.messagingengine.com (wout5-smtp.messagingengine.com
 [64.147.123.21])
 by smtp3.osuosl.org (Postfix) with ESMTPS id A012D607FF
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Fri, 23 Dec 2022 03:06:10 +0000 (UTC)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.47])
 by mailout.west.internal (Postfix) with ESMTP id AB37E320046F
 for <bitcoin-dev@lists.linuxfoundation.org>;
 Thu, 22 Dec 2022 22:06:07 -0500 (EST)
Received: from mailfrontend1 ([10.202.2.162])
 by compute6.internal (MEProxy); Thu, 22 Dec 2022 22:06:07 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:content-type:date:date:feedback-id
 :feedback-id:from:from:in-reply-to:message-id:mime-version
 :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1671764767; x=
 1671851167; bh=swCixWm9j7PX3V1Aa1IJvXKZxV0D+qaSXtXlb2/ZKHM=; b=A
 tttGGvS1Of8d5vXYZ7Ne8R82zQ+zkvIoC08e++MlhHHVXOltzAbi5GzQznWoZ73U
 QyeE4ZhHY6KS0FdRbdxBiOtuzNcG41SRD8b5uQsnspzRdjYnS4vBFrjjup4Iylpe
 2EDZtyEiFqBXwWBwtaV0QvNAgk0ZPmqffddbtJELfFD8fBNzGG8v6XfWe5+9t18T
 XONP1yV22qZP8E9KM7ba3UubaDXUv+ATMqTDGj1Ijhm5u6phY7mae0lxQszPO2XZ
 SxzWNi9nVLF6i68WVWTVzUoUkoiiln+SboPYQxDprFGVCW99aL3EBD3a6PV12Pzp
 +SQPalvtHtC2XD6PxjBwA==
X-ME-Sender: <xms:HhulYwMQfPjpvEwmDg1gffycy06pfYTGCBociNAegwemPKdtasSDqg>
 <xme:HhulY2-f7-dZmFM_AjRzlsKRYlHCxu-502JsAqwm76d7Rp-UXpTZnl196g6_rbLHw
 qWdowGauvaCUFQHOEQ>
X-ME-Received: <xmr:HhulY3T0-D0lpWv4Df8Q_LWhJ0afkR0XxGiSEpbkyPR-gvQ_RJ79SqzfgACp>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrhedugdehjecutefuodetggdotefrodftvf
 curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
 uegrihhlohhuthemuceftddtnecunecujfgurhepfffhvffukfggtggusehgtderredttd
 dunecuhfhrohhmpefrvghtvghrucfvohguugcuoehpvghtvgesphgvthgvrhhtohguugdr
 ohhrgheqnecuggftrfgrthhtvghrnhepudegtdejgeehjefhjeekkeettdehhfeghfehje
 elkeehuedtuedujeegieejleejnecuffhomhgrihhnpehlihhnuhigfhhouhhnuggrthhi
 ohhnrdhorhhgpdhsthgrtghkvghrrdhnvgifshdpphgvthgvrhhtohguugdrohhrghenuc
 evlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvges
 phgvthgvrhhtohguugdrohhrgh
X-ME-Proxy: <xmx:HhulY4u5c0YtBv3OkXn8_uC2_SEOhm18tquXJDNLQZjTroYwtpE_PA>
 <xmx:HhulY4emYMq1PpzTlIXvbMniAjgI7h3Dotae1jfW_2xq76n8mD30pA>
 <xmx:HhulY83NHhhTYKQVN9MGpJxzyz2Aq_DE5yaOKFMG5JJp4TxlmFGwDw>
 <xmx:HxulY5pdMcUpE4XnMIU_wCMcPkvKnkbW3wBs4jmUOg-n0KQhOnePUg>
Feedback-ID: i525146e8:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA for
 <bitcoin-dev@lists.linuxfoundation.org>; Thu,
 22 Dec 2022 22:06:06 -0500 (EST)
Received: by localhost (Postfix, from userid 1000)
 id 839FE5F92F; Thu, 22 Dec 2022 22:06:03 -0500 (EST)
Date: Thu, 22 Dec 2022 22:06:03 -0500
From: Peter Todd <pete@petertodd.org>
To: bitcoin-dev@lists.linuxfoundation.org
Message-ID: <Y6UbG4lcVaVmqdls@petertodd.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
 protocol="application/pgp-signature"; boundary="acKwH0Epq/OmGcsV"
Content-Disposition: inline
Subject: [bitcoin-dev] At least 17% of Bitcoin Core 24.x listening nodes are
 running full-rbf
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>, 
 <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>, 
 <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Fri, 23 Dec 2022 03:06:12 -0000


--acKwH0Epq/OmGcsV
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

tl;dr: By connecting to every Bitcoin Core v24 node I could, and measuring
transaction invs, I determined that at this moment about 17% of all Bitcoin
Core v24 nodes listening on IPv4 are running with full-rbf enabled and
successfully propagating full-rbf replacements.

Procedure:

0) Modify MAX_ADDNODE_CONNECTIONS to 5000 and recompile.
1) Run ./bitcoind -mempoolfullrbf=3D0 -debug=3Dinv -debug=3Dmempool -debug=
=3Dmempoolrej
2) Manually addnode every IPv4 address of a node matching 'Satoshi:24' and
   *not* advertising the full-rbf service bit in my DNS seed's 'dnsseed.dum=
p'
   file. This happened to be 692 IPv4 addresses.
3) Wait for connection counts to stabilize. I managed to connect to ~500 no=
des
   out of the 692 I tried connecting too.
4) Wait for one of my OpenTimestamps calendars to perform a full-rbf
   replacement=B9. They wait a significant amount of time (60s) between
   transactions and blocks to ensure good propagation, and a true full-rbf
   replacement.
5) Wait 2 minutes to ensure complete propagation of the replacement transac=
tion.
6) Run grep <wtxid> ~/.bitcoin/debug.log | grep 'got inv' | wc -l to count =
the
   number of invs. (I obtained the wtid from another node running full-rbf)
7) Repeat steps 4 to 6 three more times to verify counts are stable.


Discussion:

This data shows substantial adoption of the mempoolfullrbf=3D1 option among=
 IPv4
listening nodes, above and beyond people choosing to run Bitcoin Knots or
another full-rbf peering fork of Bitcoin Core. This data is also an
underestimate: I'm only measuring successful propagation. Nodes which have
full-rbf enabled - but do not have any full-rbf peers - are not counted by =
this
measurement. Thus the true number of full-rbf nodes will be even higher than
these stats indicate.

Since v24 nodes are currently only ~5% of all listening nodes, the probabil=
ity=B2
of a non-listening node having a full-rbf peer in their outgoing 8 connecti=
ons
is still low, ~8%. However, if this 17% was maintained as all nodes eventua=
lly
upgrade to v24, the probability of a full-rbf peer in the outgoing 8 would =
be
quite high, ~80%.


Future Work:

How are full-rbf nodes distributed among the IPv4 address space? Bitcoin
Core, by default, groups IPv4 addresses into /16 buckets, and does not conn=
ect
to more than 1 outgoing node per bucket. The true probability of connecting=
 to
a full-rbf peer may be changed by this distribution.

How are full-rbf nodes distributed among other connection types? At the mom=
ent
bitnodes.io reports that a majority of listening nodes are listening on .on=
ion
addresses. Due to the difficulty of connecting to very large numbers of Tor
nodes at once, and a lack of a convenient source of onion addresses to try,=
 I
did not attempt to measure full-rbf adoption among onion nodes. IIUC a numb=
er
of pre-built "node in a box" solutions such as the Start9 Labs Embassy are
currently only able to listen via Tor.

How are full-rbf nodes distributed among non-listening nodes? A potential
strategy to measure this could be to measure inv's on a listening node with=
 a
large number of incoming peers. Anecdotally, I have been told by a number of
people that they're running mempoolfullrbf=3D1 on non-listening nodes.


References:

1) https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-November/02=
1143.html
2) https://stacker.news/items/98441

--=20
https://petertodd.org 'peter'[:-1]@petertodd.org

--acKwH0Epq/OmGcsV
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE0RcYcKRzsEwFZ3N5Lly11TVRLzcFAmOlGxgACgkQLly11TVR
LzfsDQ//WziIMi5PORGhSMn5xeJ26WCXXRzEMBWRZLQ+QqSS6h/WeK88rhbYj3ox
3S1DPJXUCjNOXN5CBWkTYvLB6ZZbhaDF9hlQSZ+tfzZUP15k1vS33TVHoDrYxJss
zHrWLw7i/2yDFsx43BHDs7YipxuBZR/xF1TxCDIF5WTenv6MfA6o/pgPXH/6Aw+M
fgYM4xrkmL+gxW+7VdyrZlIYD9tCaH0GUs4+QKpi2ZkoL6ssv7vlNHKNT9yf974i
wDDTVoIrfD8oy1xVHrx5bUESVgdTxD4wai21HXSkeGUtfpSlJP5EJCrfXZJJfkIQ
8Xx8p2B34qIGPCaKeoEshU39kmImRGGuqsMXMmMzDfFjLXn2fkPHZTgDIsav6e9l
WU3IV0u1PZLtqys2vKrc4q4LbC9IEGvV8UNuhkSTClIzje8z0KXQUB69uUdLF5Iz
c4PdG3hjv7IxXOcuvMVFIEiRCzhBXcE+ZYPMuUJasuEnPAfmxuirVkqLMh9DkyVi
yBMQZ8H93sHQB6+6uHfGZ9wlVy2DCfk3KT7nlaoWtWgbQ4iCX04JOQ7TQvPMTxH5
t6m7kPJTeSKLH6IEfvwMtmn2F1DDcu9g1Lq8YSWvPcIvDJZy4B6NBLLpWCCktYvt
eU/swh3JfkbFye3S2/EZ8PPjzpZ1N1aNtK/FvXTlTvVZsFooRxs=
=2c0o
-----END PGP SIGNATURE-----

--acKwH0Epq/OmGcsV--