mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-09-23 00:04:57 +02:00
multi: add get and set mission control to routerrpc
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
"github.com/btcsuite/btcutil"
|
||||
"github.com/grpc-ecosystem/grpc-gateway/runtime"
|
||||
@@ -79,6 +80,13 @@ var (
|
||||
Entity: "offchain",
|
||||
Action: "read",
|
||||
}},
|
||||
"/routerrpc.Router/GetMissionControlConfig": {{
|
||||
Entity: "offchain",
|
||||
Action: "read",
|
||||
}}, "/routerrpc.Router/SetMissionControlConfig": {{
|
||||
Entity: "offchain",
|
||||
Action: "write",
|
||||
}},
|
||||
"/routerrpc.Router/QueryProbability": {{
|
||||
Entity: "offchain",
|
||||
Action: "read",
|
||||
@@ -391,6 +399,46 @@ func (s *Server) ResetMissionControl(ctx context.Context,
|
||||
return &ResetMissionControlResponse{}, nil
|
||||
}
|
||||
|
||||
// GetMissionControlConfig returns our current mission control config.
|
||||
func (s *Server) GetMissionControlConfig(ctx context.Context,
|
||||
req *GetMissionControlConfigRequest) (*GetMissionControlConfigResponse,
|
||||
error) {
|
||||
|
||||
cfg := s.cfg.RouterBackend.MissionControl.GetConfig()
|
||||
return &GetMissionControlConfigResponse{
|
||||
Config: &MissionControlConfig{
|
||||
HalfLifeSeconds: uint64(cfg.PenaltyHalfLife.Seconds()),
|
||||
HopProbability: float32(cfg.AprioriHopProbability),
|
||||
Weight: float32(cfg.AprioriWeight),
|
||||
MaximumPaymentResults: uint32(cfg.MaxMcHistory),
|
||||
MinimumFailureRelaxInterval: uint64(cfg.MinFailureRelaxInterval.Seconds()),
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
// SetMissionControlConfig returns our current mission control config.
|
||||
func (s *Server) SetMissionControlConfig(ctx context.Context,
|
||||
req *SetMissionControlConfigRequest) (*SetMissionControlConfigResponse,
|
||||
error) {
|
||||
|
||||
cfg := &routing.MissionControlConfig{
|
||||
ProbabilityEstimatorCfg: routing.ProbabilityEstimatorCfg{
|
||||
PenaltyHalfLife: time.Duration(
|
||||
req.Config.HalfLifeSeconds,
|
||||
) * time.Second,
|
||||
AprioriHopProbability: float64(req.Config.HopProbability),
|
||||
AprioriWeight: float64(req.Config.Weight),
|
||||
},
|
||||
MaxMcHistory: int(req.Config.MaximumPaymentResults),
|
||||
MinFailureRelaxInterval: time.Duration(
|
||||
req.Config.MinimumFailureRelaxInterval,
|
||||
) * time.Second,
|
||||
}
|
||||
|
||||
return &SetMissionControlConfigResponse{},
|
||||
s.cfg.RouterBackend.MissionControl.SetConfig(cfg)
|
||||
}
|
||||
|
||||
// QueryMissionControl exposes the internal mission control state to callers. It
|
||||
// is a development feature.
|
||||
func (s *Server) QueryMissionControl(ctx context.Context,
|
||||
|
Reference in New Issue
Block a user