Merge pull request #3219 from wpaulino/node-ann-broadcast
discovery: set source of node announcement broadcast to belonging node
This commit is contained in:
commit
3cf7c3a7b4
@ -2382,29 +2382,39 @@ func (d *AuthenticatedGossiper) processNetworkAnnouncement(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We'll also send along the node announcements for each channel
|
// We'll also send along the node announcements for each channel
|
||||||
// participant if we know of them.
|
// participant if we know of them. To ensure our node
|
||||||
|
// announcement propagates to our channel counterparty, we'll
|
||||||
|
// set the source for each announcement to the node it belongs
|
||||||
|
// to, otherwise we won't send it since the source gets skipped.
|
||||||
|
// This isn't necessary for channel updates and announcement
|
||||||
|
// signatures since we send those directly to our channel
|
||||||
|
// counterparty through the gossiper's reliable sender.
|
||||||
node1Ann, err := d.fetchNodeAnn(chanInfo.NodeKey1Bytes)
|
node1Ann, err := d.fetchNodeAnn(chanInfo.NodeKey1Bytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("Unable to fetch node announcement for "+
|
log.Debugf("Unable to fetch node announcement for "+
|
||||||
"%x: %v", chanInfo.NodeKey1Bytes, err)
|
"%x: %v", chanInfo.NodeKey1Bytes, err)
|
||||||
} else {
|
} else {
|
||||||
|
if nodeKey1, err := chanInfo.NodeKey1(); err == nil {
|
||||||
announcements = append(announcements, networkMsg{
|
announcements = append(announcements, networkMsg{
|
||||||
peer: nMsg.peer,
|
peer: nMsg.peer,
|
||||||
source: nMsg.source,
|
source: nodeKey1,
|
||||||
msg: node1Ann,
|
msg: node1Ann,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
node2Ann, err := d.fetchNodeAnn(chanInfo.NodeKey2Bytes)
|
node2Ann, err := d.fetchNodeAnn(chanInfo.NodeKey2Bytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debugf("Unable to fetch node announcement for "+
|
log.Debugf("Unable to fetch node announcement for "+
|
||||||
"%x: %v", chanInfo.NodeKey2Bytes, err)
|
"%x: %v", chanInfo.NodeKey2Bytes, err)
|
||||||
} else {
|
} else {
|
||||||
|
if nodeKey2, err := chanInfo.NodeKey2(); err == nil {
|
||||||
announcements = append(announcements, networkMsg{
|
announcements = append(announcements, networkMsg{
|
||||||
peer: nMsg.peer,
|
peer: nMsg.peer,
|
||||||
source: nMsg.source,
|
source: nodeKey2,
|
||||||
msg: node2Ann,
|
msg: node2Ann,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
nMsg.err <- nil
|
nMsg.err <- nil
|
||||||
return announcements
|
return announcements
|
||||||
|
Loading…
Reference in New Issue
Block a user