<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://lightningwiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=45.64.104.18</id>
	<title>lightningwiki.net - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://lightningwiki.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=45.64.104.18"/>
	<link rel="alternate" type="text/html" href="http://lightningwiki.net/index.php?title=Special:Contributions/45.64.104.18"/>
	<updated>2026-10-19T21:19:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.0</generator>
	<entry>
		<id>http://lightningwiki.net/index.php?title=Node_Management&amp;diff=1311</id>
		<title>Node Management</title>
		<link rel="alternate" type="text/html" href="http://lightningwiki.net/index.php?title=Node_Management&amp;diff=1311"/>
		<updated>2019-04-15T20:21:34Z</updated>

		<summary type="html">&lt;p&gt;45.64.104.18: /* Web frontends */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Generic information =&lt;br /&gt;
* Keep your node online&lt;br /&gt;
* Connect to the right peers&lt;br /&gt;
* Balance your channels&lt;br /&gt;
* [https://www.youtube.com/watch?v=HlPIB6jt6ww&amp;amp;app=desktop Lightning Channel Management on youtube]&lt;br /&gt;
&lt;br /&gt;
= Actions =&lt;br /&gt;
== Opening channels (outgoing) ==&lt;br /&gt;
See [[Opening channels]]&lt;br /&gt;
&lt;br /&gt;
== Getting incoming liquidity==&lt;br /&gt;
See [[Incoming liquidity]]&lt;br /&gt;
&lt;br /&gt;
== Balancing channels ==&lt;br /&gt;
There is a nice script to rebalance a lnd node, see [[rebalance-lnd]]&lt;br /&gt;
&lt;br /&gt;
==Changing fees==&lt;br /&gt;
[[Change fees]]&lt;br /&gt;
&lt;br /&gt;
==Checking routing==&lt;br /&gt;
[[Check routing on LND]]&lt;br /&gt;
&lt;br /&gt;
==Backups==&lt;br /&gt;
[[Keys and backups]]&lt;br /&gt;
&lt;br /&gt;
= Commands =&lt;br /&gt;
==lnd==&lt;br /&gt;
===Debugging===&lt;br /&gt;
[[Debugging LND]]&lt;br /&gt;
&lt;br /&gt;
===Aliases===&lt;br /&gt;
&amp;lt;pre&amp;gt;alias lchannelcaps=&amp;#039;lncli describegraph | jq &amp;#039;\&amp;#039;&amp;#039;.nodes[].total_channel_capacities=0 | foreach .nodes[] as  ( . ; foreach .edges[] as  ( . ; if .node1_pub==.pub_key then (|.total_channel_capacities=.total_channel_capacity+(.capacity|tonumber)) else empty end ; .)  ; . )&amp;#039;\&amp;#039;&amp;#039;&amp;#039;                                                                                                                                               &lt;br /&gt;
alias lnactive=&amp;#039;lncli listchannels | jq &amp;#039;\&amp;#039;&amp;#039;[ .channels | .[] | select(.active==true) ] | length&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lnchaninfo=&amp;#039;lncli listchannels | jq &amp;#039;\&amp;#039;&amp;#039;[ .channels | .[] | { &amp;quot;remote_pubkey&amp;quot;: .remote_pubkey, &amp;quot;capacity&amp;quot;: .capacity|tonumber, &amp;quot;local_balance&amp;quot;: .local_balance|tonumber, &amp;quot;remote_balance&amp;quot;: .remote_balance|&lt;br /&gt;
tonumber, &amp;quot;distribution_pct&amp;quot;: ( ( .local_balance|tonumber ) / ( (.remote_balance|tonumber ) + ( .local_balance|tonumber ) ) ), &amp;quot;total_satoshis_sent&amp;quot;: .total_satoshis_sent|tonumber, &amp;quot;total_satoshis_received&amp;quot;: .total_satoshis_received|tonumber } ]&amp;#039;\&amp;#039;&amp;#039;&amp;#039;                                                                                                                                                                        &lt;br /&gt;
alias lndist=&amp;#039;lncli listchannels | jq &amp;#039;\&amp;#039;&amp;#039;[ .channels | .[] |  { &amp;quot;remote_pubkey&amp;quot;: .remote_pubkey, &amp;quot;capacity&amp;quot;: .capacity, &amp;quot;distribution_pct&amp;quot;: ( ( .local_balance|tonumber ) / ( (.remote_balance|tonumber ) + ( .local_balance|tonumber ) ) ) } ]&amp;#039;\&amp;#039;&amp;#039;&amp;#039;                                                                                                                                                                             &lt;br /&gt;
alias lnforcegraph=&amp;#039;lncli describegraph | jq -c &amp;#039;\&amp;#039;&amp;#039;{ &amp;quot;nodes&amp;quot;: .nodes | map({ &amp;quot;id&amp;quot;: .pub_key, &amp;quot;alias&amp;quot;: .alias|match(&amp;quot;[^\u0000]+&amp;quot;)| .string, &amp;quot;group&amp;quot;: 1, &amp;quot;color&amp;quot;: .color, &amp;quot;addresses&amp;quot;: .addresses }), &amp;quot;links&amp;quot;: .edges | map({&amp;quot;source&amp;quot;: .node1_pub, &amp;quot;target&amp;quot;: .node2_pub, &amp;quot;capacity&amp;quot;: .capacity|tonumber }) }&amp;#039;\&amp;#039;&amp;#039;&amp;#039;                                                                                                                  &lt;br /&gt;
alias lninactive=&amp;#039;lncli listchannels | jq &amp;#039;\&amp;#039;&amp;#039;[ .channels | .[] | select(.active==false) ] | length&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lnlimbo=&amp;#039;lncli pendingchannels | jq &amp;#039;\&amp;#039;&amp;#039;.total_limbo_balance|tonumber&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lnnodeinfo=&amp;#039;lncli listchannels | jq -r .channels[].remote_pubkey | while read p; do lncli getnodeinfo &amp;quot;$p&amp;quot;; done&amp;#039;&lt;br /&gt;
alias lnoffchain=&amp;#039;lncli listchannels | jq &amp;#039;\&amp;#039;&amp;#039;[ .channels | .[] | select(.num_updates|tonumber&amp;gt;0) ]&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lnoffchainupdates=&amp;#039;lncli listchannels | jq &amp;#039;\&amp;#039;&amp;#039;.channels | map(.num_updates|tonumber) | add&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lnpendingc=&amp;#039;lncli pendingchannels | jq &amp;#039;\&amp;#039;&amp;#039;.pending_close_channels|length&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lnpendingf=&amp;#039;lncli pendingchannels | jq &amp;#039;\&amp;#039;&amp;#039;.pending_force_closing_channels|length&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lnpendingo=&amp;#039;lncli pendingchannels | jq &amp;#039;\&amp;#039;&amp;#039;.pending_open_channels|length&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lnreceivedbal=&amp;#039;lncli listchannels | jq &amp;#039;\&amp;#039;&amp;#039;.channels | map(.total_satoshis_received|tonumber) | add&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lnrecv=&amp;#039;lncli listchannels | jq &amp;#039;\&amp;#039;&amp;#039;[ .channels | .[] | select(.total_satoshis_received|tonumber&amp;gt;0) ]&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lnremotebal=&amp;#039;lncli listchannels | jq &amp;#039;\&amp;#039;&amp;#039;.channels | map(.remote_balance|tonumber) | add&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lnsentbal=&amp;#039;lncli listchannels | jq &amp;#039;\&amp;#039;&amp;#039;.channels | map(.total_satoshis_sent|tonumber) | add&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lntopchannels=&amp;#039;lncli describegraph | jq &amp;#039;\&amp;#039;&amp;#039;[ .edges | sort_by(.capacity|tonumber) | reverse | .[] | { &amp;quot;node1_pub&amp;quot;: .node1_pub, &amp;quot;node2_pub&amp;quot;: .node2_pub, &amp;quot;Capacity&amp;quot;: .capacity|tonumber,  } ]&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lntotalcap=&amp;#039;lncli listchannels | jq &amp;#039;\&amp;#039;&amp;#039;.channels | map(.capacity|tonumber) | add&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lnunsettled=&amp;#039;lncli listchannels | jq &amp;#039;\&amp;#039;&amp;#039;[ .channels | .[] | select(.unsettled_balance|tonumber&amp;gt;0) ]&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lnunsettledbal=&amp;#039;lncli listchannels | jq &amp;#039;\&amp;#039;&amp;#039;.channels | map(.unsettled_balance|tonumber) | add&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
alias lnunusedchannels=&amp;#039;lncli listchannels | jq &amp;#039;\&amp;#039;&amp;#039;[ .channels[] | select(.total_satoshis_sent==&amp;quot;0&amp;quot; and .total_satoshis_received==&amp;quot;0&amp;quot;) ]| {&amp;quot;unused channels&amp;quot;: map({&amp;quot;channel_point&amp;quot;: .channel_point, &amp;quot;local_balance&amp;quot;: .local_balance|tonumber, &amp;quot;num_updates&amp;quot;: .num_updates|tonumber, &amp;quot;active&amp;quot;: .active, &amp;quot;private&amp;quot;: .private}) | sort_by(.local_balance) | reverse }&amp;#039;\&amp;#039;&amp;#039;&amp;#039;                                                          &lt;br /&gt;
alias lrecv=&amp;#039;lncli listchannels | jq &amp;#039;\&amp;#039;&amp;#039;[ .channels | .[] | select(.total_satoshis_received|tonumber&amp;gt;0) ]&amp;#039;\&amp;#039;&amp;#039;&amp;#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
(by vegard)&lt;br /&gt;
= Frontends =&lt;br /&gt;
== Web frontends ==&lt;br /&gt;
* [[LNDash]]&lt;br /&gt;
* [https://github.com/ShahanaFarooqui/RTL Ride The Lightning dashboard]&lt;br /&gt;
* [https://github.com/qbert911/lnd-watcher lnd-watcher], simple script&lt;br /&gt;
* [https://github.com/M-D-Br/FlaskBitcoinDashboard/ Flask Bitcoin Dashboard]&lt;br /&gt;
&lt;br /&gt;
== CLI ==&lt;br /&gt;
* [https://github.com/edouardparis/lntop lntop\&lt;/div&gt;</summary>
		<author><name>45.64.104.18</name></author>
	</entry>
</feed>