diff --git a/gossip/comm/comm_impl.go b/gossip/comm/comm_impl.go
index <HASH>..<HASH> 100644
--- a/gossip/comm/comm_impl.go
+++ b/gossip/comm/comm_impl.go
@@ -31,10 +31,11 @@ import (
 )
 
 const (
-	defDialTimeout  = time.Second * time.Duration(3)
-	defConnTimeout  = time.Second * time.Duration(2)
-	defRecvBuffSize = 20
-	defSendBuffSize = 20
+	handshakeTimeout = time.Second * time.Duration(10)
+	defDialTimeout   = time.Second * time.Duration(3)
+	defConnTimeout   = time.Second * time.Duration(2)
+	defRecvBuffSize  = 20
+	defSendBuffSize  = 20
 )
 
 // SecurityAdvisor defines an external auxiliary object
@@ -305,7 +306,9 @@ func (c *commImpl) Handshake(remotePeer *RemotePeer) (api.PeerIdentityType, erro
 		return nil, err
 	}
 
-	stream, err := cl.GossipStream(context.Background())
+	ctx, cancel = context.WithTimeout(context.Background(), handshakeTimeout)
+	defer cancel()
+	stream, err := cl.GossipStream(ctx)
 	if err != nil {
 		return nil, err
 	}
[FAB-<I>] Use context WithTimeout in gossip handshake

The handshake is used when connecting to bootstrap or anchor peers,
and thead-hoc gRPC stream that is used, is used with a background
context without any timeout or cancel.

Change-Id: I6d6ae<I>e6d<I>d<I>fdb<I>b3c<I>ded<I>