ListPeers - 查询对端节点
GetInfo返回闪电节点的总体信息,包括其标识公钥、别名、接入的链等信息。
gRPC请求 - GetInfoRequest
无字段。
gRPC响应 - GetInfoResponse
字段如下:
- identity_pubkey:当前节点的标识公钥, string
- alias:当前节点的别名,例如"bob", string
- num_pending_channels:待确认的通道数量,uint32
- num_active_channels:活动的通道数量, uint32
- num_peers:对端节点数量, uint32
- block_height:最优块区块高度, uint32
- block_hash: 最优块区块哈希,string
- synced_to_chain:钱包是否与主链同步, bool
- testnet:当前节点是否接入测试链, bool,该字段已弃用,应带使用network字段。
- uris:当前节点的URI, 字符串数组
- best_header_timestamp:最优块的时间戳, int64
- version string:当前运行的LND软件版本号
- num_inactive_channels:失活通道数量,uint32
- chains:当前节点连接的活动链清单,Chain对象数组
- color: 当前节点的16进制代码格式颜色,string
示例代码
Python示例代码
>>> import codecs, grpc, os
>>> import rpc_pb2 as ln, rpc_pb2_grpc as lnrpc
>>> macaroon = codecs.encode(open('LND_DIR/data/chain/bitcoin/simnet/admin.macaroon', 'rb').read(), 'hex')
>>> os.environ['GRPC_SSL_CIPHER_SUITES'] = 'HIGH+ECDSA'
>>> cert = open('LND_DIR/tls.cert', 'rb').read()
>>> ssl_creds = grpc.ssl_channel_credentials(cert)
>>> channel = grpc.secure_channel('localhost:10009', ssl_creds)
>>> stub = lnrpc.LightningStub(channel)
>>> request = ln.GetInfoRequest()
>>> response = stub.GetInfo(request)
>>> print(response)
{
"identity_pubkey": <string>,
"alias": <string>,
"num_pending_channels": <uint32>,
"num_active_channels": <uint32>,
"num_peers": <uint32>,
"block_height": <uint32>,
"block_hash": <string>,
"synced_to_chain": <bool>,
"testnet": <bool>,
"uris": <array string>,
"best_header_timestamp": <int64>,
"version": <string>,
"num_inactive_channels": <uint32>,
"chains": <array Chain>,
"color": <string>,
}
JavaScript示例代码
> var fs = require('fs');
> var grpc = require('grpc');
> var lnrpc = grpc.load('rpc.proto').lnrpc;
> process.env.GRPC_SSL_CIPHER_SUITES = 'HIGH+ECDSA'
> var lndCert = fs.readFileSync('LND_DIR/tls.cert');
> var sslCreds = grpc.credentials.createSsl(lndCert);
> var macaroonCreds = grpc.credentials.createFromMetadataGenerator(function(args, callback) {
var macaroon = fs.readFileSync("LND_DIR/data/chain/bitcoin/simnet/admin.macaroon").toString('hex');
var metadata = new grpc.Metadata()
metadata.add('macaroon', macaroon);
callback(null, metadata);
});
> var creds = grpc.credentials.combineChannelCredentials(sslCreds, macaroonCreds);
> var lightning = new lnrpc.Lightning('localhost:10009', creds);
> var request = {}
> lightning.getInfo(request, function(err, response) {
console.log(response);
})
{
"identity_pubkey": <string>,
"alias": <string>,
"num_pending_channels": <uint32>,
"num_active_channels": <uint32>,
"num_peers": <uint32>,
"block_height": <uint32>,
"block_hash": <string>,
"synced_to_chain": <bool>,
"testnet": <bool>,
"uris": <array string>,
"best_header_timestamp": <int64>,
"version": <string>,
"num_inactive_channels": <uint32>,
"chains": <array Chain>,
"color": <string>,
}