rpc: add SignMessage and VerifyMessage interface
This commit allows users to sign messages with their node's private key with the SignMessage interface. The signatures are zbase32 encoded for human readability/paste-ability. Others users can verify that a message was signed by another node in their channel database with the VerifyMessage interface.
This commit is contained in:
1 parent
2486097554
commit
2249215260
7 files changed
+694
-333
No files matched your search
@@ -37,6 +37,12 @@ description):
|
||||
* Returns a new address, the following address types are supported:
|
||||
pay-to-public-key-hash (p2pkh), pay-to-witness-key-hash (p2wkh), and
|
||||
nested-pay-to-witness-key-hash (np2wkh).
|
||||
* SignMessage
|
||||
* Signs a message with the node's identity key and returns a
|
||||
zbase32 encoded signature.
|
||||
* VerifyMessage
|
||||
* Verifies a signature signed by another node on a message. The other node
|
||||
must be an active node in the channel database.
|
||||
* ConnectPeer
|
||||
* Connects to a peer identified by a public key and host.
|
||||
* DisconnectPeer
|
||||
|
||||
+485
-332
File diff suppressed because it is too large.
Load diff
@@ -38,6 +38,9 @@ service Lightning {
|
||||
};
|
||||
}
|
||||
|
||||
rpc SignMessage (SignMessageRequest) returns (SignMessageResponse);
|
||||
rpc VerifyMessage (VerifyMessageRequest) returns (VerifyMessageResponse);
|
||||
|
||||
rpc ConnectPeer (ConnectPeerRequest) returns (ConnectPeerResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/v1/peers"
|
||||
@@ -247,6 +250,21 @@ message NewAddressResponse {
|
||||
string address = 1 [json_name = "address"];
|
||||
}
|
||||
|
||||
message SignMessageRequest {
|
||||
bytes msg = 1 [ json_name = "msg" ];
|
||||
}
|
||||
message SignMessageResponse {
|
||||
string signature = 1 [ json_name = "signature" ];
|
||||
}
|
||||
|
||||
message VerifyMessageRequest {
|
||||
bytes msg = 1 [ json_name = "msg" ];
|
||||
string signature = 2 [ json_name = "signature" ];
|
||||
}
|
||||
message VerifyMessageResponse {
|
||||
bool valid = 1 [ json_name = "valid" ];
|
||||
}
|
||||
|
||||
message ConnectPeerRequest {
|
||||
LightningAddress addr = 1;
|
||||
bool perm = 2;
|
||||
|
||||
@@ -1706,6 +1706,23 @@
|
||||
"lnrpcSetAliasResponse": {
|
||||
"type": "object"
|
||||
},
|
||||
"lnrpcSignMessageRequest": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"msg": {
|
||||
"type": "string",
|
||||
"format": "byte"
|
||||
}
|
||||
}
|
||||
},
|
||||
"lnrpcSignMessageResponse": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"signature": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"lnrpcStopRequest": {
|
||||
"type": "object"
|
||||
},
|
||||
@@ -1754,6 +1771,27 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"lnrpcVerifyMessageRequest": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"msg": {
|
||||
"type": "string",
|
||||
"format": "byte"
|
||||
},
|
||||
"signature": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"lnrpcVerifyMessageResponse": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"valid": {
|
||||
"type": "boolean",
|
||||
"format": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
"lnrpcWalletBalanceRequest": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
||||
Reference in new issue
Block a user