syntax = "proto3"; package autopilotrpc; option go_package = "github.com/lightningnetwork/lnd/lnrpc/autopilotrpc"; // Autopilot is a service that can be used to get information about the current // state of the daemon's autopilot agent, and also supply it with information // that can be used when deciding where to open channels. service Autopilot { /* Status returns whether the daemon's autopilot agent is active. */ rpc Status (StatusRequest) returns (StatusResponse); /* ModifyStatus is used to modify the status of the autopilot agent, like enabling or disabling it. */ rpc ModifyStatus (ModifyStatusRequest) returns (ModifyStatusResponse); /* QueryScores queries all available autopilot heuristics, in addition to any active combination of these heruristics, for the scores they would give to the given nodes. */ rpc QueryScores (QueryScoresRequest) returns (QueryScoresResponse); /* SetScores attempts to set the scores used by the running autopilot agent, if the external scoring heuristic is enabled. */ rpc SetScores (SetScoresRequest) returns (SetScoresResponse); } message StatusRequest { } message StatusResponse { // Indicates whether the autopilot is active or not. bool active = 1; } message ModifyStatusRequest { // Whether the autopilot agent should be enabled or not. bool enable = 1; } message ModifyStatusResponse { } message QueryScoresRequest { repeated string pubkeys = 1; // If set, we will ignore the local channel state when calculating scores. bool ignore_local_state = 2; } message QueryScoresResponse { message HeuristicResult { string heuristic = 1; map scores = 2; } repeated HeuristicResult results = 1; } message SetScoresRequest { // The name of the heuristic to provide scores to. string heuristic = 1; /* A map from hex-encoded public keys to scores. Scores must be in the range [0.0, 1.0]. */ map scores = 2; } message SetScoresResponse { }