les: remove delayed les server starting
This commit is contained in:
		
							parent
							
								
									f5348e17f8
								
							
						
					
					
						commit
						12379c697a
					
				| @ -105,7 +105,6 @@ type Config struct { | ||||
| 
 | ||||
| type LesServer interface { | ||||
| 	Start(srvr *p2p.Server) | ||||
| 	Synced() | ||||
| 	Stop() | ||||
| 	Protocols() []p2p.Protocol | ||||
| } | ||||
|  | ||||
| @ -173,7 +173,7 @@ func NewProtocolManager(config *params.ChainConfig, fastSync bool, networkId int | ||||
| 		return blockchain.CurrentBlock().NumberU64() | ||||
| 	} | ||||
| 	inserter := func(blocks types.Blocks) (int, error) { | ||||
| 		manager.setSynced() // Mark initial sync done on any fetcher import
 | ||||
| 		atomic.StoreUint32(&manager.synced, 1) // Mark initial sync done on any fetcher import
 | ||||
| 		return manager.insertChain(blocks) | ||||
| 	} | ||||
| 	manager.fetcher = fetcher.New(blockchain.GetBlockByHash, validator, manager.BroadcastBlock, heighter, inserter, manager.removePeer) | ||||
|  | ||||
| @ -181,7 +181,7 @@ func (pm *ProtocolManager) synchronise(peer *peer) { | ||||
| 	if err := pm.downloader.Synchronise(peer.id, pHead, pTd, mode); err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	pm.setSynced() // Mark initial sync done
 | ||||
| 	atomic.StoreUint32(&pm.synced, 1) // Mark initial sync done
 | ||||
| 
 | ||||
| 	// If fast sync was enabled, and we synced up, disable it
 | ||||
| 	if atomic.LoadUint32(&pm.fastSync) == 1 { | ||||
| @ -192,10 +192,3 @@ func (pm *ProtocolManager) synchronise(peer *peer) { | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // setSynced sets the synced flag and notifies the light server if present
 | ||||
| func (pm *ProtocolManager) setSynced() { | ||||
| 	if atomic.SwapUint32(&pm.synced, 1) == 0 && pm.lesServer != nil { | ||||
| 		pm.lesServer.Synced() | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -42,9 +42,7 @@ type LesServer struct { | ||||
| 	fcManager       *flowcontrol.ClientManager // nil if our node is client only
 | ||||
| 	fcCostStats     *requestCostStats | ||||
| 	defParams       *flowcontrol.ServerParams | ||||
| 	srvr            *p2p.Server | ||||
| 	synced, stopped bool | ||||
| 	lock            sync.Mutex | ||||
| 	stopped         bool | ||||
| } | ||||
| 
 | ||||
| func NewLesServer(eth *eth.Ethereum, config *eth.Config) (*LesServer, error) { | ||||
| @ -70,35 +68,13 @@ func (s *LesServer) Protocols() []p2p.Protocol { | ||||
| 	return s.protocolManager.SubProtocols | ||||
| } | ||||
| 
 | ||||
| // Start only starts the actual service if the ETH protocol has already been synced,
 | ||||
| // otherwise it will be started by Synced()
 | ||||
| // Start starts the LES server
 | ||||
| func (s *LesServer) Start(srvr *p2p.Server) { | ||||
| 	s.lock.Lock() | ||||
| 	defer s.lock.Unlock() | ||||
| 
 | ||||
| 	s.srvr = srvr | ||||
| 	if s.synced { | ||||
| 		s.protocolManager.Start(s.srvr) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // Synced notifies the server that the ETH protocol has been synced and LES service can be started
 | ||||
| func (s *LesServer) Synced() { | ||||
| 	s.lock.Lock() | ||||
| 	defer s.lock.Unlock() | ||||
| 
 | ||||
| 	s.synced = true | ||||
| 	if s.srvr != nil && !s.stopped { | ||||
| 		s.protocolManager.Start(s.srvr) | ||||
| 	} | ||||
| 	s.protocolManager.Start(srvr) | ||||
| } | ||||
| 
 | ||||
| // Stop stops the LES service
 | ||||
| func (s *LesServer) Stop() { | ||||
| 	s.lock.Lock() | ||||
| 	defer s.lock.Unlock() | ||||
| 
 | ||||
| 	s.stopped = true | ||||
| 	s.fcCostStats.store() | ||||
| 	s.fcManager.Stop() | ||||
| 	go func() { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user