Return-Path: Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 62608C0070 for ; 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 ; 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 ; 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 ; 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 ; 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: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrhedugdehjecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepfffhvffukfggtggusehgtderredttd dunecuhfhrohhmpefrvghtvghrucfvohguugcuoehpvghtvgesphgvthgvrhhtohguugdr ohhrgheqnecuggftrfgrthhtvghrnhepudegtdejgeehjefhjeekkeettdehhfeghfehje elkeehuedtuedujeegieejleejnecuffhomhgrihhnpehlihhnuhigfhhouhhnuggrthhi ohhnrdhorhhgpdhsthgrtghkvghrrdhnvgifshdpphgvthgvrhhtohguugdrohhrghenuc evlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvges phgvthgvrhhtohguugdrohhrgh X-ME-Proxy: Feedback-ID: i525146e8:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; 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 To: bitcoin-dev@lists.linuxfoundation.org Message-ID: 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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 ~/.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--