@@ -47,15 +47,15 @@ func (m StatusViewModel) HandleMessage(msg tea.Msg) (StatusViewModel, tea.Cmd) {
4747
4848// getBitRate converts a given byte rate to a human-readable string format. The output may vary from B/s to GB/s.
4949func getBitRate (bytes uint64 ) string {
50- txString := fmt .Sprintf ("%d B/s " , bytes )
50+ txString := fmt .Sprintf ("%d B/s" , bytes )
5151 if bytes >= 1024 {
52- txString = fmt .Sprintf ("%d KB/s " , bytes / (1 << 10 ))
52+ txString = fmt .Sprintf ("%d KB/s" , bytes / (1 << 10 ))
5353 }
5454 if bytes >= uint64 (float64 (1024 * 1024 )) {
55- txString = fmt .Sprintf ("%d MB/s " , bytes / (1 << 20 ))
55+ txString = fmt .Sprintf ("%d MB/s" , bytes / (1 << 20 ))
5656 }
5757 if bytes >= uint64 (float64 (1024 * 1024 * 1024 )) {
58- txString = fmt .Sprintf ("%d GB/s " , bytes / (1 << 30 ))
58+ txString = fmt .Sprintf ("%d GB/s" , bytes / (1 << 30 ))
5959 }
6060
6161 return txString
@@ -72,7 +72,8 @@ func (m StatusViewModel) View() string {
7272 }
7373
7474 isCompact := m .TerminalWidth < 90
75- isP2PEnabled := m .Data .Config != nil && m .Data .Config .EnableP2PHybridMode != nil && * m .Data .Config .EnableP2PHybridMode
75+ isP2PHybridEnabled := m .Data .Config != nil && m .Data .Config .EnableP2PHybridMode != nil && * m .Data .Config .EnableP2PHybridMode
76+ isP2PEnabled := m .Data .Config != nil && m .Data .Config .EnableP2P != nil && * m .Data .Config .EnableP2P && ! isP2PHybridEnabled
7677
7778 var size int
7879 if isCompact {
@@ -94,42 +95,75 @@ func (m StatusViewModel) View() string {
9495 // Last Round
9596 row1 := lipgloss .JoinHorizontal (lipgloss .Left , beginning , middle , end )
9697
97- if isP2PEnabled {
98- end = "P2P: " + style .Green .Render ("YES" ) + " "
98+ if isP2PHybridEnabled {
99+ end = "P2P: " + style .Green .Render ("HYBRID" ) + " "
100+ } else if isP2PEnabled {
101+ end = "P2P: " + style .Green .Render ("ONLY" ) + " "
99102 } else {
100103 end = "P2P: " + style .Red .Render ("NO" ) + " "
101104 }
102105 beginning = ""
103106 middle = strings .Repeat (" " , max (0 , size - (lipgloss .Width (beginning )+ lipgloss .Width (end )+ 2 )))
104107 row2 := lipgloss .JoinHorizontal (lipgloss .Left , beginning , middle , end )
105108
109+ beginning = style .Cyan .Render (" -- " + strconv .Itoa (m .Data .Metrics .Window ) + " round average --" )
110+ // Check metrics to confirm config
111+ hasWSData := (m .Data .Metrics .TX != 0 || m .Data .Metrics .RX != 0 )
112+ hasP2PData := (m .Data .Metrics .TXP2P != 0 || m .Data .Metrics .RXP2P != 0 )
113+ if isP2PHybridEnabled && (hasWSData && ! hasP2PData ) || (hasP2PData && ! hasWSData ) {
114+ // Should be P2P and WS
115+ end = style .Red .Render ("Network/Config Mismatch" ) + " "
116+ } else if isP2PEnabled && (! hasP2PData || (hasP2PData && hasWSData )) {
117+ // Should be ONLY P2P
118+ end = style .Red .Render ("Network/Config Mismatch" ) + " "
119+ } else if (! isP2PHybridEnabled && ! isP2PEnabled ) && (! hasWSData || (hasWSData && hasP2PData )) {
120+ // Should be ONLY WS
121+ end = style .Red .Render ("Network/Config Mismatch" ) + " "
122+ } else {
123+ // Otherwise show peer count
124+ end = "Peers: "
125+ if isP2PHybridEnabled {
126+ end += fmt .Sprintf (" % 4d WS | % 4d P2P " , m .Data .Metrics .PeersWS , m .Data .Metrics .PeersP2P )
127+ } else if isP2PEnabled {
128+ end += fmt .Sprintf ("%d " , m .Data .Metrics .PeersP2P )
129+ } else {
130+ end += fmt .Sprintf ("%d " , m .Data .Metrics .PeersWS )
131+ }
132+ }
133+ middle = strings .Repeat (" " , max (0 , size - (lipgloss .Width (beginning )+ lipgloss .Width (end )+ 2 )))
134+ row3 := lipgloss .JoinHorizontal (lipgloss .Left , beginning , middle , end )
135+
106136 roundTime := fmt .Sprintf ("%.2fs" , float64 (m .Data .Metrics .RoundTime )/ float64 (time .Second ))
107137 if m .Data .Status .State != algod .StableState {
108138 roundTime = "--"
109139 }
110140 beginning = style .Blue .Render (" Round time: " ) + roundTime
111- end = getBitRate (m .Data .Metrics .TX )
112- if isP2PEnabled {
113- end += "| " + getBitRate (m .Data .Metrics .TXP2P )
141+ end = "Tx: "
142+ if isP2PHybridEnabled {
143+ end += fmt .Sprintf ("% 8s | % 8s " , getBitRate (m .Data .Metrics .TX ), getBitRate (m .Data .Metrics .TXP2P ))
144+ } else if isP2PEnabled {
145+ end += fmt .Sprintf ("%s " , getBitRate (m .Data .Metrics .TXP2P ))
146+ } else {
147+ end += fmt .Sprintf ("%s " , getBitRate (m .Data .Metrics .TX ))
114148 }
115- end += style .Green .Render ("TX " )
116149 middle = strings .Repeat (" " , max (0 , size - (lipgloss .Width (beginning )+ lipgloss .Width (end )+ 2 )))
117-
118- row3 := lipgloss .JoinHorizontal (lipgloss .Left , beginning , middle , end )
150+ row4 := lipgloss .JoinHorizontal (lipgloss .Left , beginning , middle , end )
119151
120152 tps := fmt .Sprintf ("%.2f" , m .Data .Metrics .TPS )
121153 if m .Data .Status .State != algod .StableState {
122154 tps = "--"
123155 }
124156 beginning = style .Blue .Render (" TPS: " ) + tps
125- end = getBitRate (m .Data .Metrics .RX )
126- if isP2PEnabled {
127- end += "| " + getBitRate (m .Data .Metrics .RXP2P )
157+ end = "Rx: "
158+ if isP2PHybridEnabled {
159+ end += fmt .Sprintf ("% 8s | % 8s " , getBitRate (m .Data .Metrics .RX ), getBitRate (m .Data .Metrics .RXP2P ))
160+ } else if isP2PEnabled {
161+ end += fmt .Sprintf ("%s " , getBitRate (m .Data .Metrics .RXP2P ))
162+ } else {
163+ end += fmt .Sprintf ("%s " , getBitRate (m .Data .Metrics .RX ))
128164 }
129- end += style .Green .Render ("RX " )
130165 middle = strings .Repeat (" " , max (0 , size - (lipgloss .Width (beginning )+ lipgloss .Width (end )+ 2 )))
131-
132- row4 := lipgloss .JoinHorizontal (lipgloss .Left , beginning , middle , end )
166+ row5 := lipgloss .JoinHorizontal (lipgloss .Left , beginning , middle , end )
133167
134168 return style .WithTitles (
135169 "( " + style .Red .Render (fmt .Sprintf ("Nodekit-%s" , m .Data .Version ))+ " )" ,
@@ -138,9 +172,9 @@ func (m StatusViewModel) View() string {
138172 lipgloss .JoinVertical (lipgloss .Left ,
139173 row1 ,
140174 row2 ,
141- style .Cyan .Render (" -- " + strconv .Itoa (m .Data .Metrics .Window )+ " round average --" ),
142175 row3 ,
143176 row4 ,
177+ row5 ,
144178 ),
145179 ),
146180 )
0 commit comments