While learning about payment channels, I understood channel attributes like base fees, proportional fees and maximum HTLC size would be directed, i.e., the attributes from A to B would not necessarily be the same as the attributes from B to A. However, as I was playing around with this Lightning dataset by Christian Decker, I noticed most channel data do not have a corresponding entry for the attributes in the opposite direction:

  <key id="d17" for="edge" attr.name="cltv_expiry_delta" attr.type="int" />
  <key id="d16" for="edge" attr.name="htlc_maximum_msat" attr.type="int" />
  <key id="d15" for="edge" attr.name="htlc_minimim_msat" attr.type="int" />
  <key id="d14" for="edge" attr.name="fee_proportional_millionths" attr.type="int" />
  <key id="d13" for="edge" attr.name="fee_base_msat" attr.type="int" />
  <key id="d12" for="edge" attr.name="features" attr.type="string" />
  <key id="d11" for="edge" attr.name="timestamp" attr.type="int" />
  <key id="d10" for="edge" attr.name="destination" attr.type="string" />
  <key id="d9" for="edge" attr.name="source" attr.type="string" />
  <key id="d8" for="edge" attr.name="scid" attr.type="string" />

<edge source="020bbb584a5008a9d1dfcf9aca44b254919d9f33e37e8dbdba9e0dab3cbfc628dc" target="029a8741675c4c9078b577ddc4348d602d2fb45a12e6087b617925997a84f4c02e">
  <data key="d8">531987x85x0/0</data>
  <data key="d9">020bbb584a5008a9d1dfcf9aca44b254919d9f33e37e8dbdba9e0dab3cbfc628dc</data>
  <data key="d10">029a8741675c4c9078b577ddc4348d602d2fb45a12e6087b617925997a84f4c02e</data>
  <data key="d11">1578286721</data>
  <data key="d12" />
  <data key="d13">1000</data>
  <data key="d14">1</data>
  <data key="d15">1000</data>
  <data key="d16">87340000</data>
  <data key="d17">144</data>

// No edge from 029a8741675c4c9078b577ddc4348d602d2fb45a12e6087b617925997a84f4c02e to 020bbb584a5008a9d1dfcf9aca44b254919d9f33e37e8dbdba9e0dab3cbfc628dc in the dataset

If the attributes are directed, I expected to have an edge (j,i) for every edge (i,j) in the dataset. Is this a problem of the dataset? Could the attributes be valid for both directions?

  • Channels nodes that don't have an edge (i, j) for every edge (j, i), or a subset? If it's only a subset, I would suggest it's an optimization, and the values are mirrored. Yes, for variable attributes, they are directed because you can't force someone to follow your values, so you can set your side, but not your peer's Feb 7, 2023 at 2:05
  • Actually, no edge (i,j) in the the dataset has a corresponding edge (j,i). So I'm not sure what to assume. I think assuming attributes are mirrored is not very realistic. Feb 7, 2023 at 13:48


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.