开启btcd和lnd
nohup btcd --configfile=/data/btc/btcd.conf >/data/btc/20190417.out //后台运行btcd
nohup lnd --configfile=/data/btc/lnd.conf >/data/btc/lnd20190417.out //开启lnd,也可以加nohup后台运行。
准备建立通道
第一次运行 lncli
lncli create
//需要设定一个钱包密码,也用于解锁lncli
然后特别要记住系统显示的助记词
lncli unlock //解锁lnd
lncli getinfo //查看下自己的设置是否生效
准备开启通道
lncli newaddress //生成一个lnd使用的地址,用来注入资金。
通过钱包给这个地址付款。提示:建议最少200000聪,每一个通道少于10万是开不起来的。
lncli walletbalance //查看收到了没有
lncli connect 027e70d8859e090ed975b11cfa02109221482954a254dff185e4142188eb66518b@47.75.125.192:9735 //连接一个节点,如果开启自动模式,会自动连接节点,并且只要钱包有钱,就能自动开启通道。这是lnd比c-lightning职能一些。
lncli openchannel 027e70d8859e090ed975b11cfa02109221482954a254dff185e4142188eb66518b 120000 //开通道
检查通道
lncli listchannels //列出所有打开的通道
lncli getchaninfo 630389598646894593 //获得通道的状态。
通道的备份非常重要
这一点容易被忽略。
lncli exportchanbackup --all --output_file /data/btc/chanbackup-20190427.backup //针对一个指定的,或者所有通道进行静态备份。建议指定输出为一个文件,方便保存。比如:
lncli verifychanbackup --multi_file chanbackup-20190427.backup //验证自己通道备份是否可用。
restorechanbackup //出现问题,可以从通道静态备份进行恢复。
关闭lnd的方法
注意这里说的是关闭lnd,意思就是不想再做节点了,不是停机重启。
第一步:可以通过闪电网络转出通道内的资金。
第二步:使用closeallchannels命令关闭所有存在的通道。
第三步:使用disconnect 命令逐个断开节点。
第四步:使用stop 命令停止并关闭lnd进程。
第五步:使用btcctl(btcd,或者bitcoin-cli) stop关闭btcd进程。
lncli命令详解
lncli -help //lnd命令帮助
如果命令不熟悉,可以只输入命令lncli 和关键字,有的命令会提示详细的语法。
基本命令
getinfo //返回与本地lnd进程相关的信息。
sendtoroute //通过预定义路由付款。
debuglevel //设置debug级别。
stop //停止并关闭lnd进程。
和通道相关的命令
openchannel //打开一个通道,后面加上节点id就可以,不用加ip端口。
closechannel //关闭一个存在的通道。
closeallchannels //关闭所有存在的通道。
abandonchannel //放弃所有通道
channelbalance //检查所有已打开的活跃通道中的余额
pendingchannels //显示处于等待状态中的通道的信息。
listchannels //列出所有打开的通道
closedchannels //列出所有已经关闭的通道。
getchaninfo //获得通道的状态。
getnetworkinfo //获得当前网络状态的统计信息。
feereport //显示当前所有活跃通道的收费策略。
updatechanpolicy //针对一个或多个通道更新策略。
exportchanbackup //针对一个指定的,或者所有通道进行静态备份。建议指定输出为一个文件,方便保存。比如: lncli exportchanbackup --all --output_file /data/btc/chanbackup-20190427.backup
verifychanbackup //验证自己通道备份是否可用。
restorechanbackup //从通道静态备份进行恢复。
链上交易相关
estimatefee //将比特币链上发送到多个地址的费用估计。
sendmany //链上发送到多个地址。
sendcoins //链上发送到一个地址。
listunspent //显示可用的utxo
listchaintxns //列出钱包中的交易。
支付相关
sendpayment //通过闪电网络进行付款,可以指定目的公钥,金额,可接受的费率等等参数。
payinvoice //通过闪电网络对指定的bolt地址进行支付。
addinvoice //生成一个账单收款地址。
lookupinvoice //通过支付哈希查找一个支付。.
listinvoices //列出数据库中当前存储的所有收款地址。忽略所有处于debug模式的账单。
listpayments //列出所有支出。
queryroutes //查询到目的地的路由。
decodepayreq //解码一个支付请求。
fwdinghistory //查询所有转发的HTLC的历史记录。
与对等节点相关
connect //连接到一个远程节点,后面加上节点id,ip,端口号。
disconnect //通过公钥断开一个节点。
listpeers //列出当前连接的所有活动对等点。
describegraph //描述网络图。
getnodeinfo //获得特定节点的信息。
lnd启动相关命令
create //首次启动lnd时初始化钱包。
unlock //启动时解锁加密钱包。
changepassword //启动时更改加密钱包的密码。
钱包相关
newaddress //生成一个新地址,后面必须加参数: p2wkh 或者np2wkh
walletbalance //计算并显示钱包的当前余额。
signmessage //用节点的私钥签署消息。
verifymessage //验证用签名签署的消息。
参考文章:
闪电网络技术的前世今生
https://www.douban.com/note/680755028/
闪电网络lnd的github文档
https://github.com/lightningnetwork/lnd/blob/master/docs/INSTALL.md
[初版]人人都能搭建闪电网络
https://www.jianshu.com/p/4f997c5b57ff