Skip to content

Commit

Permalink
fixup seq detection
Browse files Browse the repository at this point in the history
  • Loading branch information
skylenet committed Sep 25, 2024
1 parent 09d28bf commit 4229fc8
Showing 1 changed file with 22 additions and 18 deletions.
40 changes: 22 additions & 18 deletions handlers/clients_cl.go
Original file line number Diff line number Diff line change
Expand Up @@ -212,32 +212,36 @@ func buildCLClientsPageData() (*models.ClientsCLPageData, time.Duration) {
})

// Add peer to global nodes map
node, ok := pageData.Nodes[peer.PeerID]
_, ok := pageData.Nodes[peer.PeerID]
if !ok {
pageData.Nodes[peer.PeerID] = &models.ClientCLNode{
PeerID: peer.PeerID,
Alias: peerAlias,
Type: peerType,
ENR: peer.Enr,
}
} else {
if node.ENR == "" && peer.Enr != "" {
node.ENR = peer.Enr
} else if node.ENR != "" && peer.Enr != "" {
// Need to compare `seq` field from ENRs and only store highest
nodeENR, errA := utils.DecodeENR(node.ENR)
if errA != nil {
logrus.WithFields(logrus.Fields{"node": node.Alias, "enr": node.ENR}).Error("failed to decode enr of a node ", errA)
}
peerENR, errB := utils.DecodeENR(peer.Enr)
if errB != nil {
logrus.WithFields(logrus.Fields{"node": node.Alias, "peer": peer.PeerID, "enr": peer.Enr}).Error("failed to decode enr of a peer ", errB)
}
if errA != nil && errB != nil && peerENR.Seq() > nodeENR.Seq() {
node.ENR = peer.Enr // Store the peer's ENR
}
}
}

node := pageData.Nodes[peer.PeerID]
if node.PeerID == "16Uiu2HAkuZ7rsexPNUWaCd2W7koKedKytgKgUUihP6WbszDXqKMs" || peer.PeerID == "16Uiu2HAkuZ7rsexPNUWaCd2W7koKedKytgKgUUihP6WbszDXqKMs" {
fmt.Println("n:" + node.ENR)
fmt.Println("p:" + peer.Enr)
}
if node.ENR == "" && peer.Enr != "" {
node.ENR = peer.Enr
} else if node.ENR != "" && peer.Enr != "" {
// Need to compare `seq` field from ENRs and only store highest
nodeENR, errA := utils.DecodeENR(node.ENR)
if errA != nil {
logrus.WithFields(logrus.Fields{"node": node.Alias, "enr": node.ENR}).Error("failed to decode enr of a node ", errA)
}
peerENR, errB := utils.DecodeENR(peer.Enr)
if errB != nil {
logrus.WithFields(logrus.Fields{"node": node.Alias, "peer": peer.PeerID, "enr": peer.Enr}).Error("failed to decode enr of a peer ", errB)
}
if errA == nil && errB == nil && peerENR.Seq() > nodeENR.Seq() {
node.ENR = peer.Enr // peerENR has higher sequence number, so override.
}
}

// Increase peer direction counter
Expand Down

0 comments on commit 4229fc8

Please sign in to comment.