Matt Corallo [ARCHIVE] on Nostr: 📅 Original date posted:2022-04-28 📝 Original message: On 4/26/22 11:53 PM, ...
📅 Original date posted:2022-04-28
📝 Original message:
On 4/26/22 11:53 PM, Rusty Russell wrote:
> Matt Corallo <lf-lists at mattcorallo.com> writes:
>>> This same problem will occur if *anyone* does ratelimiting, unless
>>> *everyone* does. And with minisketch, there's a good reason to do so.
>>
>> None of this seems like a good argument for *not* taking the "send updates since the last sync in
>> the minisketch" approach to reduce the damage inconsistent policies
>> cause, though?
>
> You can't do this, with minisketch. You end up having to keep all the
> ratelimited differences you're ignoring *per peer*, and then cancelling
> them out of the minisketch on every receive or send.
Hmm? I'm a bit confused, let me attempt to restate to make sure we're on the same page. What I
*think* you said here is: "If you have a node which is rejecting a large percentage *channel*'s
updates (on a per-channel, not per-update basis), and it tries to sync, you'll end up having to keep
some huge set of 'I dont want any more updates for that channel' on a per-peer basis"? Or maybe you
might have said "When you rate-limit, you have to tell your peer that you rate-limited a channel
update and that it shouldn't add that update to its next sketch"?
Either way, I don't think its all that interesting an issue. The first case is definitely an issue,
but is an issue in both a new-data-only sketch and all-data sketch world, and is not completely
solved with identical rate-limits in any case. It can be largely addressed by sane software defaults
and roughly-similar rate-limits, though, and because its a per-channel, not per-update issue I'm
much less concerned.
The second potential thing I think you might have meant here I don't see as an issue at all? You can
simply...let the sketch include one channel update that you ignored? See above discussion of similar
rate-limits.
> So you end up doing that LND and core-lightning do, which is "pick 3
> peers to gossip with" and tell everyone else to shut up.
>
> Yet the point of minisketch is robustness; you can (at cost of 1 message
> per minute) keep in sync with an arbitrary number of peers.
>
> So, we might as well define a preferred ratelimit, so nodes know that
> spamming past a certain point is not going to propagate. At the moment,
> LND has no effective ratelimit at all, so it's a race to the bottom.
I agree there should be *some* rough consensus, but rate-limits are a locally-enforced thing, not a
global one. There will always be races and updates you reject that your peers dont, no matter the
rate-limit, and while I agree we should have guidelines, we can't "just make them the same" - it
both doesn't solve the problem and means we can't change them in the future.
Ultimately, a updates-based sync is more robust in such a case - if there's some race and your peer
accepts something you don't it may mean one more entry in the sketch one time, but it won't hang
around forever.
> We need that limit eventually, this just makes it more of a priority.
>
>> I'm not really
>> sure in a world where you do "update-based-sketch" gossip sync you're any worse off than today even
>> with different rate-limit policies, though I obviously agree there are substantial issues with the
>> massively inconsistent rate-limit policies we see today.
>
> You can't really do it, since rate-limited junk overwhelms the sketch
> really fast :(
How is this any better in a non-update-based-sketch? The only way to address it is to have a bigger
sketch, which you can do no matter the thing you're building the sketch over.
Maybe lets schedule a call to get on the same page, throwing text at each other will likely not move
very quickly.
Matt
Published at
2023-06-09 13:05:55Event JSON
{
"id": "d419db768e05cf1e610d413c03e39b6391bc77572087bb96393c085f654912e1",
"pubkey": "cd753aa8fbc112e14ffe9fe09d3630f0eff76ca68e376e004b8e77b687adddba",
"created_at": 1686315955,
"kind": 1,
"tags": [
[
"e",
"90c8a22893d09190339208f6b0eb636d6de40a2b6c7cff5708a261796a93b71e",
"",
"root"
],
[
"e",
"ab2ab733897a68d77bb628c84fec89ba0f717c596ad458468c2a3adf9072cdd2",
"",
"reply"
],
[
"p",
"13bd8c1c5e3b3508a07c92598647160b11ab0deef4c452098e223e443c1ca425"
]
],
"content": "📅 Original date posted:2022-04-28\n📝 Original message:\nOn 4/26/22 11:53 PM, Rusty Russell wrote:\n\u003e Matt Corallo \u003clf-lists at mattcorallo.com\u003e writes:\n\u003e\u003e\u003e This same problem will occur if *anyone* does ratelimiting, unless\n\u003e\u003e\u003e *everyone* does. And with minisketch, there's a good reason to do so.\n\u003e\u003e\n\u003e\u003e None of this seems like a good argument for *not* taking the \"send updates since the last sync in\n\u003e\u003e the minisketch\" approach to reduce the damage inconsistent policies\n\u003e\u003e cause, though?\n\u003e \n\u003e You can't do this, with minisketch. You end up having to keep all the\n\u003e ratelimited differences you're ignoring *per peer*, and then cancelling\n\u003e them out of the minisketch on every receive or send.\n\nHmm? I'm a bit confused, let me attempt to restate to make sure we're on the same page. What I \n*think* you said here is: \"If you have a node which is rejecting a large percentage *channel*'s \nupdates (on a per-channel, not per-update basis), and it tries to sync, you'll end up having to keep \nsome huge set of 'I dont want any more updates for that channel' on a per-peer basis\"? Or maybe you \nmight have said \"When you rate-limit, you have to tell your peer that you rate-limited a channel \nupdate and that it shouldn't add that update to its next sketch\"?\n\nEither way, I don't think its all that interesting an issue. The first case is definitely an issue, \nbut is an issue in both a new-data-only sketch and all-data sketch world, and is not completely \nsolved with identical rate-limits in any case. It can be largely addressed by sane software defaults \nand roughly-similar rate-limits, though, and because its a per-channel, not per-update issue I'm \nmuch less concerned.\n\nThe second potential thing I think you might have meant here I don't see as an issue at all? You can \nsimply...let the sketch include one channel update that you ignored? See above discussion of similar \nrate-limits.\n\n\u003e So you end up doing that LND and core-lightning do, which is \"pick 3\n\u003e peers to gossip with\" and tell everyone else to shut up.\n\u003e \n\u003e Yet the point of minisketch is robustness; you can (at cost of 1 message\n\u003e per minute) keep in sync with an arbitrary number of peers.\n\u003e \n\u003e So, we might as well define a preferred ratelimit, so nodes know that\n\u003e spamming past a certain point is not going to propagate. At the moment,\n\u003e LND has no effective ratelimit at all, so it's a race to the bottom.\n\nI agree there should be *some* rough consensus, but rate-limits are a locally-enforced thing, not a \nglobal one. There will always be races and updates you reject that your peers dont, no matter the \nrate-limit, and while I agree we should have guidelines, we can't \"just make them the same\" - it \nboth doesn't solve the problem and means we can't change them in the future.\n\nUltimately, a updates-based sync is more robust in such a case - if there's some race and your peer \naccepts something you don't it may mean one more entry in the sketch one time, but it won't hang \naround forever.\n\n\u003e We need that limit eventually, this just makes it more of a priority.\n\u003e \n\u003e\u003e I'm not really\n\u003e\u003e sure in a world where you do \"update-based-sketch\" gossip sync you're any worse off than today even\n\u003e\u003e with different rate-limit policies, though I obviously agree there are substantial issues with the\n\u003e\u003e massively inconsistent rate-limit policies we see today.\n\u003e \n\u003e You can't really do it, since rate-limited junk overwhelms the sketch\n\u003e really fast :(\n\nHow is this any better in a non-update-based-sketch? The only way to address it is to have a bigger \nsketch, which you can do no matter the thing you're building the sketch over.\n\nMaybe lets schedule a call to get on the same page, throwing text at each other will likely not move \nvery quickly.\n\nMatt",
"sig": "7aa31d21fcabd0617cdafc9fe614485018ecb3a6d0ded20ea55a5c29104a6217f9d450000b3472053c075035d3c53ac753a0a3afa4ee4b299061fbca3ee1271d"
}