Merge pull request #6088 from arshbot/export-backend-credentials

Export backend credentials
This commit is contained in:
Oliver Gugger 2022-01-11 11:02:37 +01:00 committed by GitHub
commit f788f9286e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 37 additions and 17 deletions

View File

@ -22,12 +22,12 @@ const logDirPattern = "%s/.backendlogs"
// BitcoindBackendConfig is an implementation of the BackendConfig interface // BitcoindBackendConfig is an implementation of the BackendConfig interface
// backed by a Bitcoind node. // backed by a Bitcoind node.
type BitcoindBackendConfig struct { type BitcoindBackendConfig struct {
RpcHost string rpcHost string
RpcUser string rpcUser string
RpcPass string rpcPass string
ZmqBlockPath string zmqBlockPath string
ZmqTxPath string zmqTxPath string
P2pPort int p2pPort int
rpcClient *rpcclient.Client rpcClient *rpcclient.Client
// minerAddr is the p2p address of the miner to connect to. // minerAddr is the p2p address of the miner to connect to.
@ -43,13 +43,13 @@ var _ BackendConfig = (*BitcoindBackendConfig)(nil)
func (b BitcoindBackendConfig) GenArgs() []string { func (b BitcoindBackendConfig) GenArgs() []string {
var args []string var args []string
args = append(args, "--bitcoin.node=bitcoind") args = append(args, "--bitcoin.node=bitcoind")
args = append(args, fmt.Sprintf("--bitcoind.rpchost=%v", b.RpcHost)) args = append(args, fmt.Sprintf("--bitcoind.rpchost=%v", b.rpcHost))
args = append(args, fmt.Sprintf("--bitcoind.rpcuser=%v", b.RpcUser)) args = append(args, fmt.Sprintf("--bitcoind.rpcuser=%v", b.rpcUser))
args = append(args, fmt.Sprintf("--bitcoind.rpcpass=%v", b.RpcPass)) args = append(args, fmt.Sprintf("--bitcoind.rpcpass=%v", b.rpcPass))
args = append(args, fmt.Sprintf("--bitcoind.zmqpubrawblock=%v", args = append(args, fmt.Sprintf("--bitcoind.zmqpubrawblock=%v",
b.ZmqBlockPath)) b.zmqBlockPath))
args = append(args, fmt.Sprintf("--bitcoind.zmqpubrawtx=%v", args = append(args, fmt.Sprintf("--bitcoind.zmqpubrawtx=%v",
b.ZmqTxPath)) b.zmqTxPath))
return args return args
} }
@ -64,6 +64,11 @@ func (b BitcoindBackendConfig) DisconnectMiner() error {
return b.rpcClient.AddNode(b.minerAddr, rpcclient.ANRemove) return b.rpcClient.AddNode(b.minerAddr, rpcclient.ANRemove)
} }
// Credentials returns the rpc username, password and host for the backend.
func (b BitcoindBackendConfig) Credentials() (string, string, string, error) {
return b.rpcUser, b.rpcPass, b.rpcHost, nil
}
// Name returns the name of the backend type. // Name returns the name of the backend type.
func (b BitcoindBackendConfig) Name() string { func (b BitcoindBackendConfig) Name() string {
return "bitcoind" return "bitcoind"
@ -179,12 +184,12 @@ func newBackend(miner string, netParams *chaincfg.Params, extraArgs []string) (
} }
bd := BitcoindBackendConfig{ bd := BitcoindBackendConfig{
RpcHost: rpcHost, rpcHost: rpcHost,
RpcUser: rpcUser, rpcUser: rpcUser,
RpcPass: rpcPass, rpcPass: rpcPass,
ZmqBlockPath: zmqBlockAddr, zmqBlockPath: zmqBlockAddr,
ZmqTxPath: zmqTxAddr, zmqTxPath: zmqTxAddr,
P2pPort: p2pPort, p2pPort: p2pPort,
rpcClient: client, rpcClient: client,
minerAddr: miner, minerAddr: miner,
} }

View File

@ -67,6 +67,11 @@ func (b BtcdBackendConfig) DisconnectMiner() error {
return b.harness.Client.Node(btcjson.NDisconnect, b.minerAddr, &temp) return b.harness.Client.Node(btcjson.NDisconnect, b.minerAddr, &temp)
} }
// Credentials returns the rpc username, password and host for the backend.
func (b BtcdBackendConfig) Credentials() (string, string, string, error) {
return b.rpcConfig.User, b.rpcConfig.Pass, b.rpcConfig.Host, nil
}
// Name returns the name of the backend type. // Name returns the name of the backend type.
func (b BtcdBackendConfig) Name() string { func (b BtcdBackendConfig) Name() string {
return "btcd" return "btcd"

View File

@ -82,6 +82,10 @@ type BackendConfig interface {
// Name returns the name of the backend type. // Name returns the name of the backend type.
Name() string Name() string
// Credentials returns the rpc username, password and host for the
// backend.
Credentials() (string, string, string, error)
} }
// NodeConfig is the basic interface a node configuration must implement. // NodeConfig is the basic interface a node configuration must implement.

View File

@ -42,6 +42,12 @@ func (b NeutrinoBackendConfig) DisconnectMiner() error {
return fmt.Errorf("unimplemented") return fmt.Errorf("unimplemented")
} }
// Credentials returns the rpc username, password and host for the backend.
// For neutrino, we return an error because there is no rpc client available.
func (b NeutrinoBackendConfig) Credentials() (string, string, string, error) {
return "", "", "", fmt.Errorf("unimplemented")
}
// Name returns the name of the backend type. // Name returns the name of the backend type.
func (b NeutrinoBackendConfig) Name() string { func (b NeutrinoBackendConfig) Name() string {
return NeutrinoBackendName return NeutrinoBackendName