From 9dbb313932c21e89642b830ef70e2137469d8b3f Mon Sep 17 00:00:00 2001
From: Levente Pap <levente.pap@iota.org>
Date: Fri, 19 Jun 2020 16:12:29 +0200
Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20decoding=20node=20IDs=20in?=
 =?UTF-8?q?=20analysis=20server=20(#503)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 plugins/analysis/dashboard/recorded_events.go | 20 ++++++++++++-------
 plugins/analysis/packet/heartbeat.go          |  2 +-
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/plugins/analysis/dashboard/recorded_events.go b/plugins/analysis/dashboard/recorded_events.go
index d0174bc7..25bae4dc 100644
--- a/plugins/analysis/dashboard/recorded_events.go
+++ b/plugins/analysis/dashboard/recorded_events.go
@@ -10,7 +10,7 @@ import (
 	analysisserver "github.com/iotaledger/goshimmer/plugins/analysis/server"
 	"github.com/iotaledger/hive.go/daemon"
 	"github.com/iotaledger/hive.go/events"
-	"github.com/mr-tron/base58"
+	"github.com/iotaledger/hive.go/identity"
 )
 
 // the period in which we scan and delete old data.
@@ -29,22 +29,22 @@ func configureEventsRecording() {
 	analysisserver.Events.Heartbeat.Attach(events.NewClosure(func(hb *packet.Heartbeat) {
 		var out strings.Builder
 		for _, value := range hb.OutboundIDs {
-			out.WriteString(base58.Encode(value))
+			out.WriteString(shortNodeIDString(value))
 		}
 		var in strings.Builder
 		for _, value := range hb.InboundIDs {
-			in.WriteString(base58.Encode(value))
+			in.WriteString(shortNodeIDString(value))
 		}
 		log.Debugw(
 			"Heartbeat",
-			"nodeId", base58.Encode(hb.OwnID),
+			"nodeId", shortNodeIDString(hb.OwnID),
 			"outboundIds", out.String(),
 			"inboundIds", in.String(),
 		)
 		lock.Lock()
 		defer lock.Unlock()
 
-		nodeIDString := base58.Encode(hb.OwnID)
+		nodeIDString := shortNodeIDString(hb.OwnID)
 		timestamp := time.Now()
 
 		// when node is new, add to graph
@@ -56,7 +56,7 @@ func configureEventsRecording() {
 
 		// outgoing neighbor links update
 		for _, outgoingNeighbor := range hb.OutboundIDs {
-			outgoingNeighborString := base58.Encode(outgoingNeighbor)
+			outgoingNeighborString := shortNodeIDString(outgoingNeighbor)
 			// do we already know about this neighbor?
 			// if no, add it and set it online
 			if _, isAlready := nodes[outgoingNeighborString]; !isAlready {
@@ -82,7 +82,7 @@ func configureEventsRecording() {
 
 		// incoming neighbor links update
 		for _, incomingNeighbor := range hb.InboundIDs {
-			incomingNeighborString := base58.Encode(incomingNeighbor)
+			incomingNeighborString := shortNodeIDString(incomingNeighbor)
 			// do we already know about this neighbor?
 			// if no, add it and set it online
 			if _, isAlready := nodes[incomingNeighborString]; !isAlready {
@@ -206,3 +206,9 @@ type EventHandlers struct {
 
 // EventHandlersConsumer defines the consumer function of an *EventHandlers.
 type EventHandlersConsumer = func(handler *EventHandlers)
+
+func shortNodeIDString(b []byte) string {
+	var id identity.ID
+	copy(id[:], b)
+	return id.String()
+}
diff --git a/plugins/analysis/packet/heartbeat.go b/plugins/analysis/packet/heartbeat.go
index 78faaeb8..41cfd39b 100644
--- a/plugins/analysis/packet/heartbeat.go
+++ b/plugins/analysis/packet/heartbeat.go
@@ -162,7 +162,7 @@ func NewHeartbeatMessage(hb *Heartbeat) ([]byte, error) {
 		return nil, err
 	}
 	// write serialized packet bytes into the buffer
-	if err := binary.Write(buf, binary.LittleEndian, packet); err != nil {
+	if err := binary.Write(buf, binary.BigEndian, packet); err != nil {
 		return nil, err
 	}
 
-- 
GitLab