syntax = "proto3"; option java_multiple_files = true; option java_package = "io.grpc.lspd.service"; option java_outer_classname = "LspdProto"; package lspd; service ChannelOpener { rpc ChannelInformation(ChannelInformationRequest) returns (ChannelInformationReply) {} rpc OpenChannel(OpenChannelRequest) returns (OpenChannelReply) {} } message ChannelInformationRequest { /// The identity pubkey of the Lightning node string pubkey = 1 [ json_name = "pubkey" ]; } message ChannelInformationReply { /// The name of of lsp string name = 1 [ json_name = "name" ]; /// The identity pubkey of the Lightning node string pubkey = 2 [ json_name = "pubkey" ]; /// The network location of the lightning node, e.g. `12.34.56.78:9012` or /// `localhost:10011` string host = 3 [ json_name = "host" ]; /// The channel capacity in satoshis int64 channel_capacity = 4 [ json_name = "channel_capacity" ]; /// The target number of blocks that the funding transaction should be /// confirmed by. int32 target_conf = 5 [ json_name = "target_conf" ]; /// The base fee charged regardless of the number of milli-satoshis sent. int64 base_fee_msat = 6 [ json_name = "base_fee_msat" ]; /// The effective fee rate in milli-satoshis. The precision of this value goes /// up to 6 decimal places, so 1e-6. double fee_rate = 7 [ json_name = "fee_rate" ]; /// The required timelock delta for HTLCs forwarded over the channel. uint32 time_lock_delta = 8 [ json_name = "time_lock_delta" ]; /// The minimum value in millisatoshi we will require for incoming HTLCs on /// the channel. int64 min_htlc_msat = 9 [ json_name = "min_htlc_msat" ]; } message OpenChannelRequest { /// The identity pubkey of the Lightning node string pubkey = 1 [ json_name = "pubkey" ]; } message OpenChannelReply { /// The transaction hash string tx_hash = 1 [ json_name = "tx_hash" ]; /// The output index uint32 output_index = 2 [ json_name = "output_index"]; }