lightningnetwork / lnd

Lightning Network Daemon ⚡️
MIT License
7.69k stars 2.08k forks source link

[bug]: Inbound fees are not in the gossip message when using `subscribeChannelGraph` #8722

Closed bufo24 closed 5 months ago

bufo24 commented 6 months ago

Background

I am not receiving the custom records with the inbound fees over gossip while using subscribeChannelGraph. When I query using feereport or getchaninfo I do see the inbound fees.

Using rpc subscription:

{
    chan_id: '131941395398656',
    chan_point: {
      output_index: 0,
      funding_txid_bytes: <Buffer 72 9e 7c 16 b4 53 9c 71 1d 9b 1b 3b e7 4c 19 08 fa 91 98 3d 81 c8 9e f7 8f b9 f1 8f 49 4f f5 c4>,
      funding_txid: 'funding_txid_bytes'
    },
    capacity: '50000',
    routing_policy: {
      custom_records: {},
      time_lock_delta: 100,
      min_htlc: '1000',
      fee_base_msat: '100',
      fee_rate_milli_msat: '100000000',
      disabled: false,
      max_htlc_msat: '49500000',
      last_update: 0,
      inbound_fee_base_msat: 0,
      inbound_fee_rate_milli_msat: 0
    },
    advertising_node: '022b602a5188e66d219d8817610110f59968b52f13a9240c9e14be7ed1316767d1',
    connecting_node: '03cdf33d9e6af652ea3dd65c76b420709b454af4272cbc7b69adc3663feca05116'
  }

Running getchaninfo:

{
    "channel_id": "131941395398656",
    "chan_point": "c4f54f498ff1b98ff79ec8813d9891fa08194ce73b1b9b1d719c53b4167c9e72:0",
    "last_update": 1714735282,
    "node1_pub": "022b602a5188e66d219d8817610110f59968b52f13a9240c9e14be7ed1316767d1",
    "node2_pub": "03cdf33d9e6af652ea3dd65c76b420709b454af4272cbc7b69adc3663feca05116",
    "capacity": "50000",
    "node1_policy": {
        "time_lock_delta": 100,
        "min_htlc": "1000",
        "fee_base_msat": "100",
        "fee_rate_milli_msat": "100000000",
        "disabled": false,
        "max_htlc_msat": "49500000",
        "last_update": 1714735282,
        "custom_records": {
            "55555": "ffffffc900000000"
        },
        "inbound_fee_base_msat": -55,
        "inbound_fee_rate_milli_msat": 0
    },
    "node2_policy": {
        "time_lock_delta": 100,
        "min_htlc": "1000",
        "fee_base_msat": "120",
        "fee_rate_milli_msat": "120000000",
        "disabled": false,
        "max_htlc_msat": "49500000",
        "last_update": 1714734133,
        "custom_records": {},
        "inbound_fee_base_msat": 0,
        "inbound_fee_rate_milli_msat": 0
    },
    "custom_records": {}
}

I guess the fields are missing in ChannelEdgeUpdate

Your environment

Running using Polar in docker on v0.18.0-beta.rc1

Steps to reproduce

Subscribe to channel_updated using subscribeChannelGraph. Update the inbound fee using: lncli updatechanpolicy --inbound_base_fee_msat -50 100 100 80

https://lightning.engineering/api-docs/api/lnd/lightning/subscribe-channel-graph/index.html

Expected behaviour

The custom record should have a field with the key 55555 for the inbound fees, or inbound_fee_base_msat and inbound_fee_rate_milli_msat should have another value than 0

Actual behaviour

custom_records: {} in channel_update from channel update subscription

sputn1ck commented 6 months ago

Hi @bufo24

8723 will fix this right?

C-Otto commented 6 months ago

I think the inbound fees (for nodes that know about this feature) should be shown/gossiped/... in ADDITION to whatever custom_records the channel has.