@@ -136,8 +136,6 @@ type GossipStateProviderImpl struct {
136136
137137 commChan <- chan proto.ReceivedMessage
138138
139- pvtDataChan <- chan proto.ReceivedMessage
140-
141139 // Queue of payloads which wasn't acquired yet
142140 payloads PayloadsBuffer
143141
@@ -177,13 +175,13 @@ func NewGossipStateProvider(chainID string, services *ServicesMediator, ledger l
177175 remoteStateMsgFilter := func (message interface {}) bool {
178176 receivedMsg := message .(proto.ReceivedMessage )
179177 msg := receivedMsg .GetGossipMessage ()
180- if ! msg .IsRemoteStateMessage () {
178+ if ! ( msg .IsRemoteStateMessage () || msg . GetPrivateData () != nil ) {
181179 return false
182180 }
183181 connInfo := receivedMsg .GetConnectionInfo ()
184182 authErr := services .VerifyByChannel (msg .Channel , connInfo .Identity , connInfo .Auth .Signature , connInfo .Auth .SignedData )
185183 if authErr != nil {
186- logger .Warning ("Got unauthorized nodeMetastate transfer request from" , string (connInfo .Identity ))
184+ logger .Warning ("Got unauthorized request from" , string (connInfo .Identity ))
187185 return false
188186 }
189187 return true
@@ -192,23 +190,6 @@ func NewGossipStateProvider(chainID string, services *ServicesMediator, ledger l
192190 // Filter message which are only relevant for nodeMetastate transfer
193191 _ , commChan := services .Accept (remoteStateMsgFilter , true )
194192
195- // Filter private data messages
196- _ , pvtDataChan := services .Accept (func (message interface {}) bool {
197- receivedMsg := message .(proto.ReceivedMessage )
198- msg := receivedMsg .GetGossipMessage ()
199- if msg .GetPrivateData () == nil {
200- return false
201- }
202- connInfo := receivedMsg .GetConnectionInfo ()
203- authErr := services .VerifyByChannel (msg .Channel , connInfo .Identity , connInfo .Auth .Signature , connInfo .Auth .SignedData )
204- if authErr != nil {
205- logger .Warning ("Got unauthorized private data message from" , string (connInfo .Identity ))
206- return false
207- }
208- return true
209-
210- }, true )
211-
212193 height , err := ledger .LedgerHeight ()
213194 if height == 0 {
214195 // Panic here since this is an indication of invalid situation which should not happen in normal
@@ -236,9 +217,6 @@ func NewGossipStateProvider(chainID string, services *ServicesMediator, ledger l
236217 // Channel to read direct messages from other peers
237218 commChan : commChan ,
238219
239- // Channel for private data messages
240- pvtDataChan : pvtDataChan ,
241-
242220 // Create a queue for payload received
243221 payloads : NewPayloadsBuffer (height ),
244222
@@ -291,18 +269,28 @@ func (s *GossipStateProviderImpl) listen() {
291269 logger .Debug ("Received new message via gossip channel" )
292270 go s .queueNewMessage (msg )
293271 case msg := <- s .commChan :
294- logger .Debug ("Direct message " , msg )
295- go s .directMessage (msg )
296- case msg := <- s .pvtDataChan :
297- logger .Debug ("Private data message " , msg )
298- go s .privateDataMessage (msg )
272+ logger .Debug ("Dispatching a message" , msg )
273+ go s .dispatch (msg )
299274 case <- s .stopCh :
300275 s .stopCh <- struct {}{}
301276 logger .Debug ("Stop listening for new messages" )
302277 return
303278 }
304279 }
305280}
281+ func (s * GossipStateProviderImpl ) dispatch (msg proto.ReceivedMessage ) {
282+ // Check type of the message
283+ if msg .GetGossipMessage ().IsRemoteStateMessage () {
284+ logger .Debug ("Handling direct state transfer message" )
285+ // Got state transfer request response
286+ s .directMessage (msg )
287+ } else if msg .GetGossipMessage ().GetPrivateData () != nil {
288+ logger .Debug ("Handling private data collection message" )
289+ // Handling private data replication message
290+ s .privateDataMessage (msg )
291+ }
292+
293+ }
306294func (s * GossipStateProviderImpl ) privateDataMessage (msg proto.ReceivedMessage ) {
307295 if ! bytes .Equal (msg .GetGossipMessage ().Channel , []byte (s .chainID )) {
308296 logger .Warning ("Received state transfer request for channel" ,
0 commit comments