<p>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 <a href="https://github.com/lnresearch/topology" rel="nofollow noreferrer">Lightning dataset</a> by Christian Decker, I noticed most channel data do not have a corresponding entry for the attributes in the opposite direction:</p>
<pre><code>  &lt;key id=&quot;d17&quot; for=&quot;edge&quot; attr.name=&quot;cltv_expiry_delta&quot; attr.type=&quot;int&quot; /&gt;
  &lt;key id=&quot;d16&quot; for=&quot;edge&quot; attr.name=&quot;htlc_maximum_msat&quot; attr.type=&quot;int&quot; /&gt;
  &lt;key id=&quot;d15&quot; for=&quot;edge&quot; attr.name=&quot;htlc_minimim_msat&quot; attr.type=&quot;int&quot; /&gt;
  &lt;key id=&quot;d14&quot; for=&quot;edge&quot; attr.name=&quot;fee_proportional_millionths&quot; attr.type=&quot;int&quot; /&gt;
  &lt;key id=&quot;d13&quot; for=&quot;edge&quot; attr.name=&quot;fee_base_msat&quot; attr.type=&quot;int&quot; /&gt;
  &lt;key id=&quot;d12&quot; for=&quot;edge&quot; attr.name=&quot;features&quot; attr.type=&quot;string&quot; /&gt;
  &lt;key id=&quot;d11&quot; for=&quot;edge&quot; attr.name=&quot;timestamp&quot; attr.type=&quot;int&quot; /&gt;
  &lt;key id=&quot;d10&quot; for=&quot;edge&quot; attr.name=&quot;destination&quot; attr.type=&quot;string&quot; /&gt;
  &lt;key id=&quot;d9&quot; for=&quot;edge&quot; attr.name=&quot;source&quot; attr.type=&quot;string&quot; /&gt;
  &lt;key id=&quot;d8&quot; for=&quot;edge&quot; attr.name=&quot;scid&quot; attr.type=&quot;string&quot; /&gt;

&lt;edge source=&quot;020bbb584a5008a9d1dfcf9aca44b254919d9f33e37e8dbdba9e0dab3cbfc628dc&quot; target=&quot;029a8741675c4c9078b577ddc4348d602d2fb45a12e6087b617925997a84f4c02e&quot;&gt;
  &lt;data key=&quot;d8&quot;&gt;531987x85x0/0&lt;/data&gt;
  &lt;data key=&quot;d9&quot;&gt;020bbb584a5008a9d1dfcf9aca44b254919d9f33e37e8dbdba9e0dab3cbfc628dc&lt;/data&gt;
  &lt;data key=&quot;d10&quot;&gt;029a8741675c4c9078b577ddc4348d602d2fb45a12e6087b617925997a84f4c02e&lt;/data&gt;
  &lt;data key=&quot;d11&quot;&gt;1578286721&lt;/data&gt;
  &lt;data key=&quot;d12&quot; /&gt;
  &lt;data key=&quot;d13&quot;&gt;1000&lt;/data&gt;
  &lt;data key=&quot;d14&quot;&gt;1&lt;/data&gt;
  &lt;data key=&quot;d15&quot;&gt;1000&lt;/data&gt;
  &lt;data key=&quot;d16&quot;&gt;87340000&lt;/data&gt;
  &lt;data key=&quot;d17&quot;&gt;144&lt;/data&gt;
&lt;/edge&gt;

// No edge from 029a8741675c4c9078b577ddc4348d602d2fb45a12e6087b617925997a84f4c02e to 020bbb584a5008a9d1dfcf9aca44b254919d9f33e37e8dbdba9e0dab3cbfc628dc in the dataset
</code></pre>
<p>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?</p>

CC BY-SA 4.0
2023-02-07T02:05:20.957Z
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
Davidson Souza
CC BY-SA 4.0
2023-02-07T13:48:20.130Z
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.
Gabriel Rebello
<lightning-network><lightning-routing><micropaymentchannels><ln-topology><ln-gossip>
Are payment channel attributes in the Lightning Network always directed?
Gabriel Rebello
# Are payment channel attributes in the Lightning Network always directed?

(Asked by: username_0 on 2023-02-07)

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](https://github.com/lnresearch/topology) 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>
</edge>

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

**Tags:** lightning-network, lightning-routing, micropaymentchannels, ln-topology, ln-gossip

> **Comments:**
> **username_1**: 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  
> **username_0**: 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.  

---

## 0 answers

