lnd: implement open+close channel workflow in daemon
This commit adds the necessary plumbing within the server, peer, and rpcServer to handle opening and cooperatively closing a channel with a remote peer. Many new data structures have been added to the peer in order to allow it to efficiently manage opening+.losing new/existing lightning channels. Additional documentation has been added to several methods within the peer struct, with some minor renaming along with way. The peer has also gained a dedicated goroutine whose job it is to manage any requests pertaining to opening, or closing any channels with the remote peer. The messages have been added to lnrpc define the requests and responses to channel open+close messages. Additional channel logic has been added between the rpcServer, peer, and server in order to properly manage the necessary synchronization.
This commit is contained in:
6 files changed
+633
-67
No files matched your search
@@ -4,6 +4,7 @@ package lnrpc;
|
||||
|
||||
service Lightning {
|
||||
rpc SendMany(SendManyRequest) returns (SendManyResponse);
|
||||
|
||||
rpc NewAddress(NewAddressRequest) returns (NewAddressResponse);
|
||||
|
||||
rpc ConnectPeer(ConnectPeerRequest) returns (ConnectPeerResponse);
|
||||
@@ -97,6 +98,31 @@ message ListPeersRequest {}
|
||||
message ListPeersResponse {
|
||||
repeated Peer peers = 1;
|
||||
}
|
||||
|
||||
message OpenChannelRequest {
|
||||
int32 target_peer_id = 1;
|
||||
LightningAddress target_node = 2;
|
||||
|
||||
int64 local_funding_amount = 3;
|
||||
int64 remote_funding_amount = 4;
|
||||
|
||||
int64 commission_size = 5;
|
||||
|
||||
uint32 num_confs = 6;
|
||||
}
|
||||
message OpenChannelResponse {
|
||||
ChannelPoint channel_point = 1;
|
||||
}
|
||||
|
||||
message CloseChannelRequest {
|
||||
ChannelPoint channel_point = 1;
|
||||
int64 time_limit = 2;
|
||||
bool allow_force_close = 3;
|
||||
}
|
||||
message CloseChannelResponse {
|
||||
bool success = 1;
|
||||
}
|
||||
|
||||
message WalletBalanceRequest {
|
||||
bool witness_only = 1;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user