From d083132d0517438b9242c33b3216ee82b8c72478 Mon Sep 17 00:00:00 2001 From: Yongjie Ma <20391402+yongjiema@users.noreply.github.com> Date: Tue, 6 Aug 2019 15:26:10 +0800 Subject: [PATCH] Improving the request of tasks of TaskManager (2x) (#900) --- neo/Network/P2P/TaskManager.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/neo/Network/P2P/TaskManager.cs b/neo/Network/P2P/TaskManager.cs index 5abb4f93bc..639603816d 100644 --- a/neo/Network/P2P/TaskManager.cs +++ b/neo/Network/P2P/TaskManager.cs @@ -227,7 +227,11 @@ private void RequestTasks(TaskSession session) return; } } - if ((!HasHeaderTask || globalTasks[HeaderTaskHash] < MaxConncurrentTasks) && Blockchain.Singleton.HeaderHeight < session.Version.StartHeight) + if ((!HasHeaderTask || globalTasks[HeaderTaskHash] < MaxConncurrentTasks) + && (Blockchain.Singleton.HeaderHeight < session.Version.StartHeight + || (Blockchain.Singleton.Height == Blockchain.Singleton.HeaderHeight + && Blockchain.Singleton.HeaderHeight >= sessions.Select(x => x.Value.Version.StartHeight).Max() + && TimeProvider.Current.UtcNow.ToTimestamp() - 60 >= Blockchain.Singleton.GetBlock(Blockchain.Singleton.CurrentHeaderHash)?.Timestamp))) { session.Tasks[HeaderTaskHash] = DateTime.UtcNow; IncrementGlobalTask(HeaderTaskHash);