Commit Graph

13 Commits

Author SHA1 Message Date
ThomasV 558f85296c trampoline: allow trampoline onion packets of arbitrary size 2026-03-19 08:47:07 +01:00
Sander van Grieken 130af59760 update field naming for BOLT04 structures
see also: https://github.com/lightning/bolts/commit/3fffab3b889c9a6818130b56fb6dcfdf6906f90e
2025-11-10 13:47:20 +01:00
Sander van Grieken 00bba471ff onion_wire: use unqualified byte,... type for yet undefined nested tlv types 2025-02-19 14:27:45 +01:00
Sander van Grieken dca6adcbf6 lnwire: add msg and tlv types for onion_message, including unknown_tags for test vectors 2025-02-19 14:27:36 +01:00
Sander van Grieken d8654361af peer_wire.csv: remove msgtype gossip_queries options, as the extract-formats.py tool
does not generate these anymore since https://github.com/lightning/bolts/commit/aad959a297ff66946effb165518143be15777dd6
2024-02-15 16:10:25 +01:00
ThomasV a338459d45 just-in-time channels:
- a node scid alias is derived from the node ID
 - the channel opening fee is sent in a TLV field of open_channel
 - the server requires htlc settlement before broadcasting
   (server does not trust client)
2023-11-13 10:47:18 +01:00
ThomasV c109d5e722 lnwire: update csv files with recent BOLTs
Note: there are no more optional fields in msgdata, per https://github.com/lightning/bolts/commit/f068dd0d8dfa5ae75feedd99f269e23be4777381
2023-01-13 12:50:48 +01:00
bitromortac 7d8f943150 lnwire: understand warning messages 2022-03-09 13:40:44 +01:00
bitromortac 95f42df0ac lnwire: add fee_range tlv 2022-03-07 10:36:20 +01:00
bitromortac 401a429080 lnutil+lnwire: implement ChannelType 2022-01-20 16:47:48 +01:00
ThomasV ded449233e Trampoline routing.
- trampoline is enabled by default in config, to prevent download of `gossip_db`.
   (if disabled, `gossip_db` will be downloaded, regardless of the existence of channels)
 - if trampoline is enabled:
    - the wallet can only open channels with trampoline nodes
    - already-existing channels with non-trampoline nodes are frozen for sending.
 - there are two types of trampoline payments: legacy and end-to-end (e2e).
 - we decide to perform legacy or e2e based on the invoice:
    - we use trampoline_routing_opt in features to detect Eclair and Phoenix invoices
    - we use trampoline_routing_hints to detect Electrum invoices
 - when trying a legacy payment, we add a second trampoline to the path to preserve privacy.
   (we fall back to a single trampoline if the payment fails for all trampolines)
 - the trampoline list is hardcoded, it will remain so until `trampoline_routing_opt` feature flag is in INIT.
 - there are currently only two nodes in the hardcoded list, it would be nice to have more.
 - similar to Phoenix, we find the fee/cltv by trial-and-error.
    - if there is a second trampoline in the path, we use the same fee for both.
    - the final spec should add fee info in error messages, so we will be able to fine-tune fees
2021-02-17 17:28:13 +01:00
bitromortac cf6e3e4efa lnwire: add upfront shutdown script tlvs 2021-01-11 11:37:14 +01:00
SomberNight 4c10a830f3 lnmsg: rewrite LN msg encoding/decoding 2020-04-01 21:39:48 +02:00