autopilot: move address lookup from heuristic to agent
To avoid having the heuristics deal with (possibly conflicting) address lookups, we let the agent handle them.
This commit is contained in:
4 files changed
+85
-128
No files matched your search
@@ -525,6 +525,7 @@ func (a *Agent) openChans(availableFunds btcutil.Amount, numChans uint32,
|
||||
// want to skip.
|
||||
selfPubBytes := a.cfg.Self.SerializeCompressed()
|
||||
nodes := make(map[NodeID]struct{})
|
||||
addresses := make(map[NodeID][]net.Addr)
|
||||
if err := a.cfg.Graph.ForEachNode(func(node Node) error {
|
||||
nID := NodeID(node.PubKey())
|
||||
|
||||
@@ -535,6 +536,14 @@ func (a *Agent) openChans(availableFunds btcutil.Amount, numChans uint32,
|
||||
return nil
|
||||
}
|
||||
|
||||
// If the node has no known addresses, we cannot connect to it,
|
||||
// so we'll skip it.
|
||||
addrs := node.Addrs()
|
||||
if len(addrs) == 0 {
|
||||
return nil
|
||||
}
|
||||
addresses[nID] = addrs
|
||||
|
||||
// Additionally, if this node is in the blacklist, then
|
||||
// we'll skip it.
|
||||
if _, ok := nodesToSkip[nID]; ok {
|
||||
@@ -562,6 +571,12 @@ func (a *Agent) openChans(availableFunds btcutil.Amount, numChans uint32,
|
||||
return fmt.Errorf("unable to calculate node scores : %v", err)
|
||||
}
|
||||
|
||||
// Add addresses to the candidates.
|
||||
for nID, c := range scores {
|
||||
addrs := addresses[nID]
|
||||
c.Addrs = addrs
|
||||
}
|
||||
|
||||
log.Debugf("Got scores for %d nodes", len(scores))
|
||||
|
||||
// Now use the score to make a weighted choice which
|
||||
|
||||
Reference in new issue
Block a user