lnresearch / topology

Data about the past and current structure of the Lightning Network
MIT License
82 stars 15 forks source link

Clarification regarding channel attributes #18

Open gfrebello opened 1 year ago

gfrebello commented 1 year ago

Because channel attributes (fees, CLTV delta, etc.) in LN are directed, I expected the dataset to contain two directed edges for every channel. However, I noticed some channels are mapped into a single edge with attributes. E.g.:

  <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>
</edge>

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

What should I assume about the attributes in these cases? Are they mirrored or just missing?

Thanks.

gfrebello commented 1 year ago

I confirmed some attributes are indeed missing but can be retrieved using a LN explorer. PR #19 implements an optional feature that ensures channels remain in the graph only if they have data for both edges.