From 31a9c5f6675281839d304846886bc35348d5411d Mon Sep 17 00:00:00 2001 From: Callum Waters Date: Fri, 27 Aug 2021 14:15:44 +0200 Subject: [PATCH] allow for dynamic adding of light providers --- internal/consensus/reactor.go | 2 +- internal/statesync/reactor.go | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/internal/consensus/reactor.go b/internal/consensus/reactor.go index 2b9fa7358..915756488 100644 --- a/internal/consensus/reactor.go +++ b/internal/consensus/reactor.go @@ -1096,7 +1096,7 @@ func (r *Reactor) handleDataMessage(envelope p2p.Envelope, msgI Message) error { } if r.WaitSync() { - logger.Info("ignoring message received during sync", "msg", msgI) + logger.Info("ignoring message received during sync", "msg", fmt.Sprintf("%T", msgI)) return nil } diff --git a/internal/statesync/reactor.go b/internal/statesync/reactor.go index 12d42baa0..9967f33c3 100644 --- a/internal/statesync/reactor.go +++ b/internal/statesync/reactor.go @@ -852,9 +852,11 @@ func (r *Reactor) processPeerUpdate(peerUpdate p2p.PeerUpdate) { newProvider := NewBlockProvider(peerUpdate.NodeID, r.chainID, r.dispatcher) r.providers[peerUpdate.NodeID] = newProvider r.syncer.AddPeer(peerUpdate.NodeID) - // if sp, ok := r.stateProvider.(*stateProviderP2P); ok { - // sp.addProvider(newProvider) - // } + if sp, ok := r.stateProvider.(*stateProviderP2P); ok { + // we do this in a separate routine to not block whilst waiting for the light client to finish + // whatever call it's currently executing + go sp.addProvider(newProvider) + } case p2p.PeerStatusDown: delete(r.providers, peerUpdate.NodeID)