Skip to content

Commit 683cdbd

Browse files
committed
terminal: init the autopilot client
1 parent 4639e7e commit 683cdbd

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed

config.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"github.com/lightninglabs/faraday"
1818
"github.com/lightninglabs/faraday/chain"
1919
"github.com/lightninglabs/faraday/frdrpcserver"
20+
"github.com/lightninglabs/lightning-terminal/autopilotserver"
2021
mid "github.com/lightninglabs/lightning-terminal/rpcmiddleware"
2122
"github.com/lightninglabs/lndclient"
2223
"github.com/lightninglabs/loop/loopd"
@@ -185,6 +186,8 @@ type Config struct {
185186

186187
RPCMiddleware *mid.Config `group:"RPC middleware options" namespace:"rpcmiddleware"`
187188

189+
Autopilot *autopilotserver.Config `group:"Autopilot server options" namespace:"autopilot"`
190+
188191
// faradayRpcConfig is a subset of faraday's full configuration that is
189192
// passed into faraday's RPC server.
190193
faradayRpcConfig *frdrpcserver.Config
@@ -325,6 +328,9 @@ func defaultConfig() *Config {
325328
Pool: &poolDefaultConfig,
326329
RPCMiddleware: mid.DefaultConfig(),
327330
FirstLNCConnDeadline: defaultFirstLNCConnTimeout,
331+
Autopilot: &autopilotserver.Config{
332+
PingCadence: time.Hour,
333+
},
328334
}
329335
}
330336

terminal.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/lightninglabs/faraday/frdrpc"
2323
"github.com/lightninglabs/faraday/frdrpcserver"
2424
"github.com/lightninglabs/lightning-terminal/accounts"
25+
"github.com/lightninglabs/lightning-terminal/autopilotserver"
2526
"github.com/lightninglabs/lightning-terminal/firewall"
2627
"github.com/lightninglabs/lightning-terminal/firewalldb"
2728
"github.com/lightninglabs/lightning-terminal/litrpc"
@@ -64,6 +65,9 @@ import (
6465
)
6566

6667
const (
68+
MainnetServer = "autopilot.lightning.finance:12010"
69+
TestnetServer = "test.autopilot.lightning.finance:12010"
70+
6771
defaultServerTimeout = 10 * time.Second
6872
defaultConnectTimeout = 15 * time.Second
6973
defaultStartupTimeout = 5 * time.Second
@@ -156,6 +160,8 @@ type LightningTerminal struct {
156160
faradayServer *frdrpcserver.RPCServer
157161
faradayStarted bool
158162

163+
autopilotClient autopilotserver.Autopilot
164+
159165
ruleMgrs rules.ManagerSet
160166

161167
loopServer *loopd.Daemon
@@ -261,6 +267,35 @@ func (g *LightningTerminal) Run() error {
261267
return fmt.Errorf("error creating session DB: %v", err)
262268
}
263269

270+
if !g.cfg.Autopilot.Disable {
271+
if g.cfg.Autopilot.Address == "" &&
272+
len(g.cfg.Autopilot.DialOpts) == 0 {
273+
274+
switch g.cfg.Network {
275+
case "mainnet":
276+
g.cfg.Autopilot.Address = MainnetServer
277+
case "testnet":
278+
g.cfg.Autopilot.Address = TestnetServer
279+
default:
280+
return errors.New("no autopilot server " +
281+
"address specified")
282+
}
283+
}
284+
285+
g.cfg.Autopilot.LitVersion = autopilotserver.Version{
286+
Major: uint32(appMajor),
287+
Minor: uint32(appMinor),
288+
Patch: uint32(appPatch),
289+
}
290+
291+
g.autopilotClient, err = autopilotserver.NewClient(
292+
g.cfg.Autopilot,
293+
)
294+
if err != nil {
295+
return err
296+
}
297+
}
298+
264299
g.sessionRpcServer, err = newSessionRPCServer(&sessionRpcServerConfig{
265300
basicAuth: g.rpcProxy.basicAuth,
266301
dbDir: filepath.Join(g.cfg.LitDir, g.cfg.Network),
@@ -649,6 +684,21 @@ func (g *LightningTerminal) startSubservers() error {
649684
}
650685
g.macaroonServiceStarted = true
651686

687+
if !g.cfg.Autopilot.Disable {
688+
withLndVersion := func(cfg *autopilotserver.Config) {
689+
cfg.LndVersion = autopilotserver.Version{
690+
Major: g.lndClient.Version.AppMajor,
691+
Minor: g.lndClient.Version.AppMinor,
692+
Patch: g.lndClient.Version.AppPatch,
693+
}
694+
}
695+
696+
if err = g.autopilotClient.Start(withLndVersion); err != nil {
697+
return fmt.Errorf("could not start the autopilot "+
698+
"client: %v", err)
699+
}
700+
}
701+
652702
log.Infof("Starting LiT session server")
653703
if err = g.sessionRpcServer.start(); err != nil {
654704
return err
@@ -970,6 +1020,10 @@ func (g *LightningTerminal) shutdown() error {
9701020
}
9711021
}
9721022

1023+
if g.autopilotClient != nil {
1024+
g.autopilotClient.Stop()
1025+
}
1026+
9731027
if g.sessionRpcServerStarted {
9741028
if err := g.sessionRpcServer.stop(); err != nil {
9751029
log.Errorf("Error closing session DB: %v", err)

0 commit comments

Comments
 (0)