lnrpc/signrpc: create new signrpc package with build-flag guarded config
In this commit, we introduce a new sub-package within the greater RPC package. This new sub-package will house a new set of sub-RPC servers to expose experimental features behind build flags for upstream consumers. In this commit, we add the first config for the service, which will simply expose the lnwallet.Signer interface over RPC. In the default file, we have what the config will be if the build tag (signerrpc) is off. In this case, the config parser won't detect any times, and if specified will error out. In the active file, we have the true config that the server will use. With this new set up, we'll exploit these build flags heavily in order to create a generalized framework for adding additional sub RPC servers.
This commit is contained in:
parent
b5dd1863f6
commit
a432f9a4c8
33
lnrpc/signrpc/config_active.go
Normal file
33
lnrpc/signrpc/config_active.go
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
// +build signerrpc
|
||||||
|
|
||||||
|
package signrpc
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/lightningnetwork/lnd/lnwallet"
|
||||||
|
"github.com/lightningnetwork/lnd/macaroons"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Config is the primary configuration struct for the signer RPC server. It
|
||||||
|
// contains all the items required for the signer rpc server to carry out its
|
||||||
|
// duties. The fields with struct tags are meant to be parsed as normal
|
||||||
|
// configuration options, while if able to be populated, the latter fields MUST
|
||||||
|
// also be specified.
|
||||||
|
type Config struct {
|
||||||
|
// SignerMacPath is the path for the signer macaroon. If unspecified
|
||||||
|
// then we assume that the macaroon will be found under the network
|
||||||
|
// directory, named DefaultSignerMacFilename.
|
||||||
|
SignerMacPath string `long:"signermacaroonpath" description:"Path to the signer macaroon"`
|
||||||
|
|
||||||
|
// NetworkDir is the main network directory wherein the signer rpc
|
||||||
|
// server will find the macaroon named DefaultSignerMacFilename.
|
||||||
|
NetworkDir string
|
||||||
|
|
||||||
|
// MacService is the main macaroon service that we'll use to handle
|
||||||
|
// authentication for the signer rpc server.
|
||||||
|
MacService *macaroons.Service
|
||||||
|
|
||||||
|
// Signer is the signer instance that backs the signer RPC server. The
|
||||||
|
// job of the signer RPC server is simply to proxy valid requests to
|
||||||
|
// the active signer instance.
|
||||||
|
Signer lnwallet.Signer
|
||||||
|
}
|
10
lnrpc/signrpc/config_default.go
Normal file
10
lnrpc/signrpc/config_default.go
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// +build !signerrpc
|
||||||
|
|
||||||
|
package signrpc
|
||||||
|
|
||||||
|
// Config is the primary configuration struct for the signer RPC server. It
|
||||||
|
// contains all the items required for the signer rpc server to carry out its
|
||||||
|
// duties. The fields with struct tags are meant to be parsed as normal
|
||||||
|
// configuration options, while if able to be populated, the latter fields MUST
|
||||||
|
// also be specified.
|
||||||
|
type Config struct{}
|
Loading…
Reference in New Issue
Block a user