@@ -184,6 +184,8 @@ func main() {
184
184
185
185
const (
186
186
GSM_signedObservation GossipMsgType = iota
187
+ GSM_signedObservationInBatch
188
+ GSM_signedObservationBatch
187
189
GSM_tbObservation
188
190
GSM_signedHeartbeat
189
191
GSM_signedVaaWithQuorum
@@ -193,11 +195,9 @@ func main() {
193
195
GSM_maxTypeVal
194
196
)
195
197
196
- // Outbound gossip message queue
197
- sendC := make (chan []byte )
198
-
199
198
// Inbound observations
200
199
obsvC := make (chan * node_common.MsgWithTimeStamp [gossipv1.SignedObservation ], 20000 )
200
+ batchObsvC := make (chan * node_common.MsgWithTimeStamp [gossipv1.SignedObservationBatch ], 20000 )
201
201
202
202
// Inbound observation requests
203
203
obsvReqC := make (chan * gossipv1.ObservationRequest , 20000 )
@@ -266,7 +266,7 @@ func main() {
266
266
267
267
gossipMsgTable := table .NewWriter ()
268
268
gossipMsgTable .SetOutputMirror (os .Stdout )
269
- gossipMsgTable .AppendHeader (table.Row {"#" , "Guardian" , "Obsv" , "TB_OBsv" , "HB" , "VAA" , "Obsv_Req" , "Chain_Gov_Cfg" , "Chain_Gov_Status" })
269
+ gossipMsgTable .AppendHeader (table.Row {"#" , "Guardian" , "Obsv" , "ObsvInB" , "ObsvB" , " TB_OBsv" , "HB" , "VAA" , "Obsv_Req" , "Chain_Gov_Cfg" , "Chain_Gov_Status" })
270
270
gossipMsgTable .SetStyle (table .StyleColoredDark )
271
271
272
272
obsvRateTable := table .NewWriter ()
@@ -316,9 +316,11 @@ func main() {
316
316
guardianTable .Render ()
317
317
prompt ()
318
318
case "m" :
319
+ gossipLock .Lock ()
319
320
activeTable = 2
320
321
resetTerm (true )
321
322
gossipMsgTable .Render ()
323
+ gossipLock .Unlock ()
322
324
prompt ()
323
325
case "o" :
324
326
activeTable = 3
@@ -337,11 +339,12 @@ func main() {
337
339
// Just count observations
338
340
go func () {
339
341
uniqueObs := map [string ]struct {}{}
342
+ uniqueObsInBatch := map [string ]struct {}{}
340
343
for {
341
344
select {
342
345
case <- rootCtx .Done ():
343
346
return
344
- case o := <- obsvC :
347
+ case o := <- obsvC : // TODO: Rip out this code once we cut over to batching.
345
348
spl := strings .Split (o .Msg .MessageId , "/" )
346
349
emitter := strings .ToLower (spl [1 ])
347
350
addr := "0x" + string (hex .EncodeToString (o .Msg .Addr ))
@@ -367,9 +370,44 @@ func main() {
367
370
gossipLock .Lock ()
368
371
gossipMsgTable .ResetRows ()
369
372
for idx , r := range gossipCounter {
370
- gossipMsgTable .AppendRow (table.Row {idx , guardianIndexToNameMap [idx ], r [0 ], r [1 ], r [2 ], r [3 ], r [4 ], r [5 ], r [6 ]})
373
+ gossipMsgTable .AppendRow (table.Row {idx , guardianIndexToNameMap [idx ], r [0 ], r [1 ], r [2 ], r [3 ], r [4 ], r [5 ], r [6 ], r [ 7 ], r [ 8 ] })
371
374
}
372
375
gossipLock .Unlock ()
376
+ case batch := <- batchObsvC :
377
+ for _ , o := range batch .Msg .Observations {
378
+ spl := strings .Split (o .MessageId , "/" )
379
+ emitter := strings .ToLower (spl [1 ])
380
+ addr := "0x" + string (hex .EncodeToString (batch .Msg .Addr ))
381
+ idx := guardianIndexMap [strings .ToLower (addr )]
382
+ if knownEmitters [emitter ] {
383
+ gossipCounter [idx ][GSM_tbObservation ]++
384
+ gossipCounter [totalsRow ][GSM_tbObservation ]++
385
+ }
386
+ if handleObsv (uint (idx )) {
387
+ obsvRateTable .ResetRows ()
388
+ for i := 0 ; i < numGuardians ; i ++ {
389
+ obsvRateTable .AppendRow (table.Row {i , obsvRateRows [int (i )].guardianName , obsvRateRows [int (i )].obsvCount ,
390
+ obsvRateRows [uint (i )].percents [0 ], obsvRateRows [uint (i )].percents [1 ], obsvRateRows [uint (i )].percents [2 ],
391
+ obsvRateRows [uint (i )].percents [3 ], obsvRateRows [uint (i )].percents [4 ], obsvRateRows [uint (i )].percents [5 ],
392
+ obsvRateRows [uint (i )].percents [6 ], obsvRateRows [uint (i )].percents [7 ], obsvRateRows [uint (i )].percents [8 ],
393
+ obsvRateRows [uint (i )].percents [9 ]})
394
+ }
395
+ }
396
+ gossipCounter [idx ][GSM_signedObservationInBatch ]++
397
+ gossipCounter [totalsRow ][GSM_signedObservationInBatch ]++
398
+
399
+ if * loadTesting {
400
+ uniqueObsInBatch [hex .EncodeToString (o .Hash )] = struct {}{}
401
+ gossipCounter [uniqueRow ][GSM_signedObservationInBatch ] = len (uniqueObsInBatch )
402
+ }
403
+
404
+ gossipLock .Lock ()
405
+ gossipMsgTable .ResetRows ()
406
+ for idx , r := range gossipCounter {
407
+ gossipMsgTable .AppendRow (table.Row {idx , guardianIndexToNameMap [idx ], r [0 ], r [1 ], r [2 ], r [3 ], r [4 ], r [5 ], r [6 ], r [7 ], r [8 ]})
408
+ }
409
+ gossipLock .Unlock ()
410
+ }
373
411
}
374
412
}
375
413
}()
@@ -388,7 +426,7 @@ func main() {
388
426
gossipLock .Lock ()
389
427
gossipMsgTable .ResetRows ()
390
428
for idx , r := range gossipCounter {
391
- gossipMsgTable .AppendRow (table.Row {idx , guardianIndexToNameMap [idx ], r [0 ], r [1 ], r [2 ], r [3 ], r [4 ], r [5 ], r [6 ]})
429
+ gossipMsgTable .AppendRow (table.Row {idx , guardianIndexToNameMap [idx ], r [0 ], r [1 ], r [2 ], r [3 ], r [4 ], r [5 ], r [6 ], r [ 7 ], r [ 8 ] })
392
430
}
393
431
gossipLock .Unlock ()
394
432
}
@@ -420,7 +458,7 @@ func main() {
420
458
gossipLock .Lock ()
421
459
gossipMsgTable .ResetRows ()
422
460
for idx , r := range gossipCounter {
423
- gossipMsgTable .AppendRow (table.Row {idx , guardianIndexToNameMap [idx ], r [0 ], r [1 ], r [2 ], r [3 ], r [4 ], r [5 ], r [6 ]})
461
+ gossipMsgTable .AppendRow (table.Row {idx , guardianIndexToNameMap [idx ], r [0 ], r [1 ], r [2 ], r [3 ], r [4 ], r [5 ], r [6 ], r [ 7 ], r [ 8 ] })
424
462
}
425
463
gossipLock .Unlock ()
426
464
}
@@ -489,7 +527,7 @@ func main() {
489
527
gossipLock .Lock ()
490
528
gossipMsgTable .ResetRows ()
491
529
for idx , r := range gossipCounter {
492
- gossipMsgTable .AppendRow (table.Row {idx , guardianIndexToNameMap [idx ], r [0 ], r [1 ], r [2 ], r [3 ], r [4 ], r [5 ], r [6 ]})
530
+ gossipMsgTable .AppendRow (table.Row {idx , guardianIndexToNameMap [idx ], r [0 ], r [1 ], r [2 ], r [3 ], r [4 ], r [5 ], r [6 ], r [ 7 ], r [ 8 ] })
493
531
}
494
532
gossipLock .Unlock ()
495
533
if activeTable == 0 {
@@ -524,7 +562,7 @@ func main() {
524
562
gossipLock .Lock ()
525
563
gossipMsgTable .ResetRows ()
526
564
for idx , r := range gossipCounter {
527
- gossipMsgTable .AppendRow (table.Row {idx , guardianIndexToNameMap [idx ], r [0 ], r [1 ], r [2 ], r [3 ], r [4 ], r [5 ], r [6 ]})
565
+ gossipMsgTable .AppendRow (table.Row {idx , guardianIndexToNameMap [idx ], r [0 ], r [1 ], r [2 ], r [3 ], r [4 ], r [5 ], r [6 ], r [ 7 ], r [ 8 ] })
528
566
}
529
567
gossipLock .Unlock ()
530
568
}
@@ -545,7 +583,7 @@ func main() {
545
583
gossipLock .Lock ()
546
584
gossipMsgTable .ResetRows ()
547
585
for idx , r := range gossipCounter {
548
- gossipMsgTable .AppendRow (table.Row {idx , guardianIndexToNameMap [idx ], r [0 ], r [1 ], r [2 ], r [3 ], r [4 ], r [5 ], r [6 ]})
586
+ gossipMsgTable .AppendRow (table.Row {idx , guardianIndexToNameMap [idx ], r [0 ], r [1 ], r [2 ], r [3 ], r [4 ], r [5 ], r [6 ], r [ 7 ], r [ 8 ] })
549
587
}
550
588
gossipLock .Unlock ()
551
589
}
@@ -562,36 +600,29 @@ func main() {
562
600
// Run supervisor.
563
601
components := p2p .DefaultComponents ()
564
602
components .Port = * p2pPort
603
+
604
+ params , err := p2p .NewRunParams (
605
+ * p2pBootstrap ,
606
+ * p2pNetworkID ,
607
+ priv ,
608
+ gst ,
609
+ rootCtxCancel ,
610
+ p2p .WithComponents (components ),
611
+ p2p .WithSignedObservationListener (obsvC ),
612
+ p2p .WithSignedObservationBatchListener (batchObsvC ),
613
+ p2p .WithSignedVAAListener (signedInC ),
614
+ p2p .WithObservationRequestListener (obsvReqC ),
615
+ p2p .WithChainGovernorConfigListener (govConfigC ),
616
+ p2p .WithChainGovernorStatusListener (govStatusC ),
617
+ )
618
+ if err != nil {
619
+ logger .Fatal ("Failed to create RunParams" , zap .Error (err ))
620
+ }
621
+
565
622
supervisor .New (rootCtx , logger , func (ctx context.Context ) error {
566
623
if err := supervisor .Run (ctx ,
567
624
"p2p" ,
568
- p2p .Run (obsvC ,
569
- obsvReqC ,
570
- nil ,
571
- sendC ,
572
- signedInC ,
573
- priv ,
574
- nil ,
575
- gst ,
576
- * p2pNetworkID ,
577
- * p2pBootstrap ,
578
- "" ,
579
- false ,
580
- rootCtxCancel ,
581
- nil ,
582
- nil ,
583
- govConfigC ,
584
- govStatusC ,
585
- components ,
586
- nil ,
587
- false ,
588
- false ,
589
- nil ,
590
- nil ,
591
- "" ,
592
- 0 ,
593
- "" ,
594
- )); err != nil {
625
+ p2p .Run (params )); err != nil {
595
626
return err
596
627
}
597
628
0 commit comments