@@ -308,6 +308,11 @@ export class PeerManager {
308
308
private onPing ( peer : PeerId , seqNumber : phase0 . Ping ) : void {
309
309
// if the sequence number is unknown update the peer's metadata
310
310
const metadata = this . connectedPeers . get ( peer . toString ( ) ) ?. metadata ;
311
+ this . logger . warn ( "onPing" , {
312
+ seqNumber,
313
+ metaSeqNumber : metadata ?. seqNumber ,
314
+ cond : ! metadata || metadata . seqNumber < seqNumber ,
315
+ } ) ;
311
316
if ( ! metadata || metadata . seqNumber < seqNumber ) {
312
317
void this . requestMetadata ( peer ) ;
313
318
}
@@ -320,7 +325,10 @@ export class PeerManager {
320
325
// Store metadata always in case the peer updates attnets but not the sequence number
321
326
// Trust that the peer always sends the latest metadata (From Lighthouse)
322
327
const peerData = this . connectedPeers . get ( peer . toString ( ) ) ;
328
+ this . logger . warn ( "onMetadata" , { peer : peer . toString ( ) , peerData : peerData !== undefined } ) ;
329
+ console . log ( "onMetadata" , metadata ) ;
323
330
if ( peerData ) {
331
+ const oldMetadata = peerData . metadata ;
324
332
peerData . metadata = {
325
333
seqNumber : metadata . seqNumber ,
326
334
attnets : metadata . attnets ,
@@ -330,6 +338,9 @@ export class PeerManager {
330
338
this . discovery ?. [ "peerIdToCustodySubnetCount" ] . get ( peer . toString ( ) ) ??
331
339
this . config . CUSTODY_REQUIREMENT ,
332
340
} ;
341
+ if ( oldMetadata === null || oldMetadata . csc < peerData . metadata . csc ) {
342
+ void this . requestStatus ( peer , this . statusCache . get ( ) ) ;
343
+ }
333
344
}
334
345
}
335
346
@@ -396,9 +407,10 @@ export class PeerManager {
396
407
}
397
408
if ( getConnection ( this . libp2p , peer . toString ( ) ) ) {
398
409
const nodeId = peerData ?. nodeId ?? computeNodeId ( peer ) ;
410
+ console . log ( "onStatus" , peerData ?. metadata ) ;
399
411
const custodySubnetCount = peerData ?. metadata ?. csc ;
400
412
401
- const peerCustodySubnetCount = custodySubnetCount ?? this . config . CUSTODY_REQUIREMENT ;
413
+ const peerCustodySubnetCount = custodySubnetCount ?? 4 ;
402
414
const peerCustodySubnets = getCustodyColumnSubnets ( nodeId , peerCustodySubnetCount ) ;
403
415
404
416
const matchingSubnetsNum = this . custodySubnets . reduce (
@@ -410,6 +422,7 @@ export class PeerManager {
410
422
411
423
this . logger . warn ( `onStatus ${ custodySubnetCount == undefined ? "undefined custody count assuming 4" : "" } ` , {
412
424
nodeId : toHexString ( nodeId ) ,
425
+ myNodeId : toHexString ( this . nodeId ) ,
413
426
peerId : peer . toString ( ) ,
414
427
custodySubnetCount,
415
428
hasAllColumns,
@@ -441,14 +454,17 @@ export class PeerManager {
441
454
442
455
private async requestMetadata ( peer : PeerId ) : Promise < void > {
443
456
try {
457
+ this . logger . warn ( "requestMetadata" , { peer : peer . toString ( ) } ) ;
444
458
this . onMetadata ( peer , await this . reqResp . sendMetadata ( peer ) ) ;
445
459
} catch ( e ) {
460
+ console . log ( "requestMetadata" , e ) ;
446
461
// TODO: Downvote peer here or in the reqResp layer
447
462
}
448
463
}
449
464
450
465
private async requestPing ( peer : PeerId ) : Promise < void > {
451
466
try {
467
+ this . logger . warn ( "requestPing" , { peer : peer . toString ( ) } ) ;
452
468
this . onPing ( peer , await this . reqResp . sendPing ( peer ) ) ;
453
469
454
470
// If peer replies a PING request also update lastReceivedMsg
@@ -663,7 +679,7 @@ export class PeerManager {
663
679
this . connectedPeers . set ( remotePeer . toString ( ) , peerData ) ;
664
680
665
681
if ( direction === "outbound" ) {
666
- //this.pingAndStatusTimeouts();
682
+ // this.pingAndStatusTimeouts();
667
683
void this . requestPing ( remotePeer ) ;
668
684
void this . requestStatus ( remotePeer , this . statusCache . get ( ) ) ;
669
685
}
0 commit comments