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 }