From 0735d359b998d776a4346ddc1bc0a485cb922f31 Mon Sep 17 00:00:00 2001 From: carla Date: Tue, 19 Jan 2021 10:57:10 +0200 Subject: [PATCH] router: move self node out of config We are going to use the config struct to allow getting and setting of the mission control config in the commits that follow. Self node is not something we want to change, so we move it out for better separation. --- routing/integrated_routing_context_test.go | 3 +-- routing/missioncontrol.go | 14 ++++++-------- routing/missioncontrol_test.go | 3 +-- routing/payment_session_test.go | 2 +- routing/router_test.go | 2 +- server.go | 3 +-- 6 files changed, 11 insertions(+), 16 deletions(-) diff --git a/routing/integrated_routing_context_test.go b/routing/integrated_routing_context_test.go index 3bad6085..951858ad 100644 --- a/routing/integrated_routing_context_test.go +++ b/routing/integrated_routing_context_test.go @@ -61,7 +61,6 @@ func newIntegratedRoutingContext(t *testing.T) *integratedRoutingContext { PenaltyHalfLife: 30 * time.Minute, AprioriHopProbability: 0.6, AprioriWeight: 0.5, - SelfNode: source.pubkey, }, pathFindingCfg: PathFindingConfig{ @@ -115,7 +114,7 @@ func (c *integratedRoutingContext) testPayment(maxParts uint32) ([]htlcAttempt, // Instantiate a new mission control with the current configuration // values. - mc, err := NewMissionControl(db, &c.mcCfg) + mc, err := NewMissionControl(db, c.source.pubkey, &c.mcCfg) if err != nil { c.t.Fatal(err) } diff --git a/routing/missioncontrol.go b/routing/missioncontrol.go index f48f8f5f..ac281a8e 100644 --- a/routing/missioncontrol.go +++ b/routing/missioncontrol.go @@ -78,7 +78,8 @@ type MissionControl struct { // external function to enable deterministic unit tests. now func() time.Time - cfg *MissionControlConfig + // selfNode is our pubkey. + selfNode route.Vertex store *missionControlStore @@ -122,9 +123,6 @@ type MissionControlConfig struct { // since the previously recorded failure before the failure amount may // be raised. MinFailureRelaxInterval time.Duration - - // SelfNode is our own pubkey. - SelfNode route.Vertex } // TimedPairResult describes a timestamped pair result. @@ -177,8 +175,8 @@ type paymentResult struct { } // NewMissionControl returns a new instance of missionControl. -func NewMissionControl(db kvdb.Backend, cfg *MissionControlConfig) ( - *MissionControl, error) { +func NewMissionControl(db kvdb.Backend, self route.Vertex, + cfg *MissionControlConfig) (*MissionControl, error) { log.Debugf("Instantiating mission control with config: "+ "PenaltyHalfLife=%v, AprioriHopProbability=%v, "+ @@ -200,7 +198,7 @@ func NewMissionControl(db kvdb.Backend, cfg *MissionControlConfig) ( mc := &MissionControl{ state: newMissionControlState(cfg.MinFailureRelaxInterval), now: time.Now, - cfg: cfg, + selfNode: self, store: store, estimator: estimator, } @@ -262,7 +260,7 @@ func (m *MissionControl) GetProbability(fromNode, toNode route.Vertex, results, _ := m.state.getLastPairResult(fromNode) // Use a distinct probability estimation function for local channels. - if fromNode == m.cfg.SelfNode { + if fromNode == m.selfNode { return m.estimator.getLocalPairProbability(now, results, toNode) } diff --git a/routing/missioncontrol_test.go b/routing/missioncontrol_test.go index 001e7b03..a18da7ba 100644 --- a/routing/missioncontrol_test.go +++ b/routing/missioncontrol_test.go @@ -78,12 +78,11 @@ func createMcTestContext(t *testing.T) *mcTestContext { // restartMc creates a new instances of mission control on the same database. func (ctx *mcTestContext) restartMc() { mc, err := NewMissionControl( - ctx.db, + ctx.db, mcTestSelf, &MissionControlConfig{ PenaltyHalfLife: testPenaltyHalfLife, AprioriHopProbability: testAprioriHopProbability, AprioriWeight: testAprioriWeight, - SelfNode: mcTestSelf, }, ) if err != nil { diff --git a/routing/payment_session_test.go b/routing/payment_session_test.go index ba55fcea..6a84e1f0 100644 --- a/routing/payment_session_test.go +++ b/routing/payment_session_test.go @@ -33,7 +33,7 @@ func TestRequestRoute(t *testing.T) { func() (routingGraph, func(), error) { return &sessionGraph{}, func() {}, nil }, - &MissionControl{cfg: &MissionControlConfig{}}, + &MissionControl{}, PathFindingConfig{}, ) if err != nil { diff --git a/routing/router_test.go b/routing/router_test.go index 5db80dc9..12f84772 100644 --- a/routing/router_test.go +++ b/routing/router_test.go @@ -91,7 +91,7 @@ func createTestCtxFromGraphInstance(startingHeight uint32, graphInstance *testGr } mc, err := NewMissionControl( - graphInstance.graph.Database(), + graphInstance.graph.Database(), route.Vertex{}, mcConfig, ) if err != nil { diff --git a/server.go b/server.go index 2e4fb8b0..6326d6bb 100644 --- a/server.go +++ b/server.go @@ -726,13 +726,12 @@ func newServer(cfg *Config, listenAddrs []net.Addr, routingConfig := routerrpc.GetRoutingConfig(cfg.SubRPCServers.RouterRPC) s.missionControl, err = routing.NewMissionControl( - remoteChanDB, + remoteChanDB, selfNode.PubKeyBytes, &routing.MissionControlConfig{ AprioriHopProbability: routingConfig.AprioriHopProbability, PenaltyHalfLife: routingConfig.PenaltyHalfLife, MaxMcHistory: routingConfig.MaxMcHistory, AprioriWeight: routingConfig.AprioriWeight, - SelfNode: selfNode.PubKeyBytes, MinFailureRelaxInterval: routing.DefaultMinFailureRelaxInterval, }, )