discovery: make sure ChannelUpdates always have incremented timestamp
This commit ensures that we always increment the timestamp of ChannelUpdates we send telling the network about changes to our channel policy. We do this because it could happen (especially during tests) that we issued an update, but the ChannelUpdate would have the same timestamp as our last ChannelUpdate, and would be ignored by the network.
This commit is contained in:
parent
43d7dd3d99
commit
483abbee5b
@ -1986,12 +1986,18 @@ func (d *AuthenticatedGossiper) sendAnnSigReliably(
|
||||
func (d *AuthenticatedGossiper) updateChannel(info *channeldb.ChannelEdgeInfo,
|
||||
edge *channeldb.ChannelEdgePolicy) (*lnwire.ChannelAnnouncement, *lnwire.ChannelUpdate, error) {
|
||||
|
||||
edge.LastUpdate = time.Now()
|
||||
// Make sure timestamp is always increased, such that our update
|
||||
// gets propagated.
|
||||
timestamp := time.Now().Unix()
|
||||
if timestamp <= edge.LastUpdate.Unix() {
|
||||
timestamp = edge.LastUpdate.Unix() + 1
|
||||
}
|
||||
edge.LastUpdate = time.Unix(timestamp, 0)
|
||||
chanUpdate := &lnwire.ChannelUpdate{
|
||||
Signature: edge.Signature,
|
||||
ChainHash: info.ChainHash,
|
||||
ShortChannelID: lnwire.NewShortChanIDFromInt(edge.ChannelID),
|
||||
Timestamp: uint32(edge.LastUpdate.Unix()),
|
||||
Timestamp: uint32(timestamp),
|
||||
Flags: edge.Flags,
|
||||
TimeLockDelta: edge.TimeLockDelta,
|
||||
HtlcMinimumMsat: edge.MinHTLC,
|
||||
|
Loading…
Reference in New Issue
Block a user