Anthony Towns [ARCHIVE] on Nostr: 📅 Original date posted:2022-10-29 📝 Original message:On Fri, Oct 28, 2022 at ...
📅 Original date posted:2022-10-29
📝 Original message:On Fri, Oct 28, 2022 at 09:45:09PM -1000, David A. Harding via bitcoin-dev wrote:
> I think this might be understating the problem. A 95% chance of having
> an outbound peer accept your tx conversely implies 1 in 20 payments will
> fail to propagate on their initial broadcast.
Whether that's terrible or not depends on how easy it is to retry (and how
likely the retry is to succeed) after a failure -- if a TCP packet fails,
it just gets automatically resent, and if that succeeds, there's a little
lag, but your connection is still usable. I think it's *conceivable* that
a 5% failure rate could be detectable and automatically rectified. Not
that I have a good idea how you'd actually do that, in a way that's
efficient/private/decentralised...
> Some napkin math: there are about 250,000 transactions a day; if
> we round that up to 100 million a year and assume we only want one
> transaction per year to fail to initially propagate on a network where
> 30% of nodes have adopted a more permissive policy, lightweight clients
> will need to connect to over 50 randomly selected nodes.[1]
A target failure probability of 1-in-1e8 means:
* with 8 connections, you need 90% of the network to support your txs
* with 12 connections, you need ~79%
* with 24 connections (eg everyone running a long-lived node is
listening, so long lived nodes make 12 outbound and receive about
~12 inbound; shortlived nodes just do 24 outbound), you need ~54%
So with that success target, and no preferential peering, you need
a majority of listening nodes to support your tx's features in most
reasonable scenarios, I think.
> For a more
> permissive policy only adopted by 10% of nodes, the lightweight client
> needs to connect to almost 150 nodes.
I get 175 connections needed for that scenario; or 153 with a target
failure rate of 1-in-10-million.
Cheers,
aj
Published at
2023-06-07 23:16:02Event JSON
{
"id": "17931888672cbf59cbe6cd3d389ceb5498a7becb3a12555ff8ffaa8ab64d61fc",
"pubkey": "f0feda6ad58ea9f486e469f87b3b9996494363a26982b864667c5d8acb0542ab",
"created_at": 1686179762,
"kind": 1,
"tags": [
[
"e",
"72e405df3aaafafab176501cba9ee9ab7db3f9a3f761dd313e13dd7ef49c1f95",
"",
"root"
],
[
"e",
"17b331dd284dcc39fd5802611da948bb5536936bf603f9ba79e8ee830f717171",
"",
"reply"
],
[
"p",
"d3574a24208f4e3d0821bb4a69a0c3ae842043d444fa5c4a8c49c369918a6fb2"
]
],
"content": "📅 Original date posted:2022-10-29\n📝 Original message:On Fri, Oct 28, 2022 at 09:45:09PM -1000, David A. Harding via bitcoin-dev wrote:\n\u003e I think this might be understating the problem. A 95% chance of having\n\u003e an outbound peer accept your tx conversely implies 1 in 20 payments will\n\u003e fail to propagate on their initial broadcast.\n\nWhether that's terrible or not depends on how easy it is to retry (and how\nlikely the retry is to succeed) after a failure -- if a TCP packet fails,\nit just gets automatically resent, and if that succeeds, there's a little\nlag, but your connection is still usable. I think it's *conceivable* that\na 5% failure rate could be detectable and automatically rectified. Not\nthat I have a good idea how you'd actually do that, in a way that's\nefficient/private/decentralised...\n\n\u003e Some napkin math: there are about 250,000 transactions a day; if\n\u003e we round that up to 100 million a year and assume we only want one\n\u003e transaction per year to fail to initially propagate on a network where\n\u003e 30% of nodes have adopted a more permissive policy, lightweight clients\n\u003e will need to connect to over 50 randomly selected nodes.[1] \n\nA target failure probability of 1-in-1e8 means:\n\n * with 8 connections, you need 90% of the network to support your txs\n * with 12 connections, you need ~79%\n * with 24 connections (eg everyone running a long-lived node is\n listening, so long lived nodes make 12 outbound and receive about\n ~12 inbound; shortlived nodes just do 24 outbound), you need ~54%\n\nSo with that success target, and no preferential peering, you need\na majority of listening nodes to support your tx's features in most\nreasonable scenarios, I think.\n\n\u003e For a more\n\u003e permissive policy only adopted by 10% of nodes, the lightweight client\n\u003e needs to connect to almost 150 nodes.\n\nI get 175 connections needed for that scenario; or 153 with a target\nfailure rate of 1-in-10-million.\n\nCheers,\naj",
"sig": "10513efcaa9a5f2b8c54936cba8d0857112102bc80b107c98c98d3f5ff68f98fc29a429a93ef9465543e24397ffcfe3e2a032a9e7dd343c5a874ad7c61b958c1"
}