From 68d577c13d518f8d3298a29b674c2d0327dc0523 Mon Sep 17 00:00:00 2001 From: Thomas Saunders Date: Mon, 2 Apr 2018 19:39:02 -0500 Subject: [PATCH] add coz seeds, change how headers/blocks are requested --- neo/Network/NeoNode.py | 25 +++++++++++++++++++------ neo/Network/NodeLeader.py | 4 ++-- neo/data/protocol.mainnet.json | 7 ++++--- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/neo/Network/NeoNode.py b/neo/Network/NeoNode.py index 27d7ecd07..9a5c61bd7 100644 --- a/neo/Network/NeoNode.py +++ b/neo/Network/NeoNode.py @@ -212,14 +212,15 @@ def ProtocolReady(self): self.AskForMoreBlocks() # self.RequestPeerInfo() + pass def AskForMoreHeaders(self): - # self.Log("asking for more headers...") + self.Log("asking for more headers...") get_headers_message = Message("getheaders", GetBlocksPayload(hash_start=[BC.Default().CurrentHeaderHash])) self.SendSerializedMessage(get_headers_message) def AskForMoreBlocks(self): - reactor.callInThread(self.DoAskForMoreBlocks) + self.DoAskForMoreBlocks() def DoAskForMoreBlocks(self): @@ -260,8 +261,10 @@ def DoAskForMoreBlocks(self): self.SendSerializedMessage(message) else: # self.Log("all caught up!!!!!! hashes is zero") - self.AskForMoreHeaders() - reactor.callLater(20, self.DoAskForMoreBlocks) + # self.RequestVersion() + # self.AskForMoreHeaders() + # reactor.callLater(15, self.AskForMoreHeaders) + reactor.callLater(7, self.DoAskForMoreBlocks) def DoAskForSingleBlock(self, block_hash): if block_hash not in self.myblockrequests: @@ -297,6 +300,7 @@ def SendPeerInfo(self): def RequestVersion(self): """Request the remote client version.""" + self.Log("All caught up, requesting version") m = Message("getversion") self.SendSerializedMessage(m) @@ -311,6 +315,7 @@ def HandleVersion(self, payload): self.nodeid = self.Version.Nonce self.Log("Remote version %s " % vars(self.Version)) self.SendVersion() +# self.AskForMoreHeaders() def HandleVerack(self): """Handle the `verack` response.""" @@ -341,15 +346,23 @@ def HandleBlockHeadersReceived(self, inventory): inventory (neo.Network.Inventory): """ inventory = IOHelper.AsSerializableWithType(inventory, 'neo.Network.Payloads.HeadersPayload.HeadersPayload') - + self.Log("Received headers %s " % (len(inventory.Headers))) if inventory is not None: + # self.Log("Headers %s " % inventory.Headers) BC.Default().AddHeaders(inventory.Headers) if len(inventory.Headers) == 1 and BC.Default().HeaderHeight - BC.Default().Height < 5: self.DoAskForSingleBlock(inventory.Headers[0].Hash.ToBytes()) - elif BC.Default().HeaderHeight < self.Version.StartHeight: + if BC.Default().HeaderHeight < self.Version.StartHeight: self.AskForMoreHeaders() + else: + reactor.callLater(5, self.AskForMoreHeaders) +# else: +# self.AskForMoreBlocks() +# elif BC.Default().Height == BC.Default().HeaderHeight: +# print("Will ask for more headerS!") +# self.AskForMoreHeaders() def HandleBlockReceived(self, inventory): """ diff --git a/neo/Network/NodeLeader.py b/neo/Network/NodeLeader.py index a77de542a..b0ac861af 100644 --- a/neo/Network/NodeLeader.py +++ b/neo/Network/NodeLeader.py @@ -29,8 +29,8 @@ class NodeLeader(): _MissedBlocks = [] - BREQPART = 10 - NREQMAX = 50 + BREQPART = 20 + NREQMAX = 120 BREQMAX = 4000 KnownHashes = [] diff --git a/neo/data/protocol.mainnet.json b/neo/data/protocol.mainnet.json index 7ad921ecf..0bb36f73d 100644 --- a/neo/data/protocol.mainnet.json +++ b/neo/data/protocol.mainnet.json @@ -12,11 +12,12 @@ "02486fd15702c4490a26703112a5cc1d0923fd697a33406bd5a1c00e0013b09a70" ], "SeedList": [ + "13.58.252.110:10333", + "18.216.146.68:10333", + "172.31.4.71:10333", "seed1.neo.org:10333", "seed2.neo.org:10333", - "seed3.neo.org:10333", - "seed4.neo.org:10333", - "seed5.neo.org:10333" + "seed3.neo.org:10333" ], "RPCList":[ "http://18.217.24.130:8080",