github.com/status-im/status-go@v1.1.0/peers/verifier/verifier.go (about)

     1  package verifier
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/ethereum/go-ethereum/p2p/enode"
     7  )
     8  
     9  // LocalVerifier verifies nodes based on a provided local list.
    10  type LocalVerifier struct {
    11  	KnownPeers map[enode.ID]struct{}
    12  }
    13  
    14  // NewLocalVerifier returns a new LocalVerifier instance.
    15  func NewLocalVerifier(peers []enode.ID) *LocalVerifier {
    16  	knownPeers := make(map[enode.ID]struct{})
    17  	for _, peer := range peers {
    18  		knownPeers[peer] = struct{}{}
    19  	}
    20  
    21  	return &LocalVerifier{KnownPeers: knownPeers}
    22  }
    23  
    24  // VerifyNode checks if a given node is trusted using a local list.
    25  func (v *LocalVerifier) VerifyNode(_ context.Context, nodeID enode.ID) bool {
    26  	if _, ok := v.KnownPeers[nodeID]; ok {
    27  		return true
    28  	}
    29  	return false
    30  }