blips icon indicating copy to clipboard operation
blips copied to clipboard

blip-0004: experimental endorsement signaling in update_add_htlc

Open carlaKC opened this issue 1 year ago • 12 comments

bLIP 0004 for experimental endorsement signalling:

  • Adds TLV number 65555 to update_add_htlc for experimental endorsement signaling
  • Provides instructions for relaying this signal after a flag day

carlaKC avatar Aug 01 '23 17:08 carlaKC

ACK, @thomash-acinq does that work for you?

t-bast avatar Aug 08 '23 10:08 t-bast

A bit weird we have a BLIP reserving a value for a BOLT PR - do we want to include like a timeout on this reservation - "just for testing, after date X this is returned to the available pool"?

TheBlueMatt avatar Aug 11 '23 23:08 TheBlueMatt

A bit weird we have a BLIP reserving a value for a BOLT PR

Yeah .. there just isn't really a better place for reserving the value.

do we want to include like a timeout on this reservation - "just for testing, after date X this is returned to the available pool"?

Can't we just come back and deprecate it once we're done? Because hard setting a date required that folks are upgraded to stop using it by then? Not like we're short of TLV types.

carlaKC avatar Aug 15 '23 13:08 carlaKC

As I understand the line between BLIPs/BOLTS, this is the wrong place for the TLV reservation (because this is something that we intend to deploy to the whole network, so it's a BOLT), so I'd be hesitant to continue further down the BLIP path. I opened this just to flag that the TLV field is being used somewhere public, I'm not sure it even needs merging tbh.

Actually, now that I think about it, what's stopping us from placing the HTLC Endorsement inside the BLIP and then deprecating the BLIP itself?

For example - I could copy the text in, but then would we do a review round on the BLIP and the BOLT? Seems messy.

carlaKC avatar Nov 27 '23 09:11 carlaKC

For example - I could copy the text in, but then would we do a review round on the BLIP and the BOLT? Seems messy.

Well before all we should decide for what we want to use the BLIPs repository and for what we want to use the BOLT one.

as I see, the jamming research can be a BLIP without touch the BOLT, but this is just my feeling, and I my understand wrong the scope of the BLIPs

vincenzopalazzo avatar Nov 27 '23 17:11 vincenzopalazzo

Updated to include Antione's suggestion of including a deprecation_flag_day and @ProofOfKeags suggested rewording for setting endorsement values when actively participating.

carlaKC avatar Apr 08 '24 18:04 carlaKC

SGTM.

PurpleTimez avatar May 03 '24 04:05 PurpleTimez

Seems like everyone is happy to go ahead with 3 bits of information. While we certainly could bikeshed a more complex scheme, I think that this is good enough for our purposes and strikes a good balance of:

  • Allowing experiments to opt into the full 3 bits
  • By default relaying min/max values (effectively true/false) so that the signal propagates through the network without "step down" privacy concerns

@ProofOfKeags @thomash-acinq @vincenzopalazzo anything outstanding on your end?

Last on my end is picking dates, WDYT about:

  • Leave experiment_start as a TODO when we merge, as it depends on deployment of the experimental flag
  • Set experiment_end to 31 December 2026

carlaKC avatar May 14 '24 17:05 carlaKC

Updated to set experiment_end and chose a more random TLV value (per bolt 01).

carlaKC avatar May 20 '24 18:05 carlaKC

Thanks again for the reviews! Addressed last few nits/clarifications - I think this is ready to go 🚀

carlaKC avatar May 24 '24 15:05 carlaKC

Rebased + updated feature bit to not clash with dns_resolver

carlaKC avatar Jun 17 '24 13:06 carlaKC

Summary of discussion from today's call:

  • We'll leave the instructions as-is for interpretation of values: just strictly defining the edges of the range (7=endorsed / 0=unendorsed) in the blip
  • @thomash-acinq will run the numbers with their algo to give a reasonable threshold for interpretation based on existing data (eg: consider >6 endorsed) which I'll use in my impl
  • By default only forward as endorsed if endorsed=7, otherwise set endorsed=0 to prevent any privacy leaks (ofc impls can do what they want, because the node operator is opting in to that)

carlaKC avatar Jul 29 '24 21:07 carlaKC

Can we go ahead and merge this @t-bast / @thomash-acinq?

It's been sitting for a while and is starting to run into feature bit conflicts.

carlaKC avatar Aug 07 '24 18:08 carlaKC

Sounds good to me, we've added support for this to eclair (https://github.com/ACINQ/eclair/pull/2884) so let's get this merged!

t-bast avatar Aug 08 '24 06:08 t-bast