Tuesday, November 5, 2024

lightning community – Downside calculating routing charges

I am attempting to compute the routing charges for a lightning community fee of 100,000 msats. The route makes use of the next sequence of channels (CHAN1 will not be proven for privateness causes):

CHAN1 (base charge: 1000, ppm: 9)
647868x2102x1 (base charge: 0, ppm: 5000)
751905x3128x0 (base charge: 0, ppm: 5000)
751905x3125x0 (base charge: 1000, ppm: 1)

The route that lightning-cli returns is the next:

"route": [
   {
      "id": "0298f6074a454a1f5345cb2a7c6f9fce206cd0bf675d177cdbf0ca7508dd28852f",
      "channel": "CHAN1",
      "direction": 1,
      "msatoshi": 101505,
      "amount_msat": "101505msat",
      "delay": 123,
      "style": "tlv"
   },
   {
      "id": "023d70f2f76d283c6c4e58109ee3a2816eb9d8feb40b23d62469060a2b2867b77f",
      "channel": "647868x2102x1",
      "direction": 1,
      "msatoshi": 101505,
      "amount_msat": "101505msat",
      "delay": 89,
      "style": "tlv"
   },
   {
      "id": "0265c45476ef53365755f7076eef987965f308b04dba1d8f74638e75b3164eafdd",
      "channel": "751905x3128x0",
      "direction": 0,
      "msatoshi": 101000,
      "amount_msat": "101000msat",
      "delay": 49,
      "style": "tlv"
   },
   {
      "id": "026165850492521f4ac8abd9bd8088123446d126f648ca35e60f88177dc149ceb2",
      "channel": "751905x3125x0",
      "direction": 1,
      "msatoshi": 100000,
      "amount_msat": "100000msat",
      "delay": 9,
      "style": "tlv"
   }
]

The second to final channel is routing 101,000 msat, which implies that the second to final node (0265c4…) receives 1,000 msats as a routing charge. I do not perceive how this quantity is calculated.

I assumed the proper charge is:
math.ceil(base + 100,000 * ppm) = math.ceil(1,000 + 100,000 * (1/1,000,000)) = math.ceil(1,000.1) = 1,001 msats.

What’s the appropriate formulation?

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles