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, }, )