Commit graph

94 commits

Author SHA1 Message Date
Jack Robison
a96d827c0f
use reactor time in Delay 2018-03-28 15:53:50 -04:00
Jack Robison
4eab77fa10
safe start_listening 2018-03-28 15:53:50 -04:00
Jack Robison
5013426e02
logging and docstring 2018-03-28 15:53:50 -04:00
Jack Robison
cb09be5336
remove unused stuff 2018-03-28 15:53:50 -04:00
Jack Robison
5628d0825b
add CallLaterManager 2018-03-28 15:53:49 -04:00
Jack Robison
88970cb0a8
move peer manager class to lbrynet.core 2018-03-28 15:53:49 -04:00
Jack Robison
87c69742cd
log packet encoding errors and warn if the transport is not connected 2018-03-28 15:53:48 -04:00
Jack Robison
b4bc5e2110
cancel callLater on error or timeout 2018-03-28 15:53:48 -04:00
Jack Robison
df78f7ff9f
add response assertion to announce_to_peer 2018-03-28 15:53:48 -04:00
Jack Robison
bdba263224
catch TimeoutError in _IterativeFindHelper 2018-03-28 15:53:48 -04:00
Jack Robison
16fcc3f5c1
findValue inlinecallbacks refactor 2018-03-28 15:53:48 -04:00
Jack Robison
43896c8d17
refactor joinNetwork into smaller functions
-try to re-join network if no contacts are known
2018-03-28 15:53:47 -04:00
Jack Robison
e6caedac91
remove DHTHashSupplier class, move former functions into DHTHashAnnouncer 2018-03-28 15:53:47 -04:00
Jack Robison
6666468640
add reactor arguments to Node
-adds reactor (clock) and reactor functions listenUDP, callLater, and resolve as arguments to Node.__init__
-set the reactor clock on LoopingCalls to make them easily testable
-convert callLater manage loops to LoopingCalls
2018-03-28 15:53:47 -04:00
Jack Robison
efaa97216f
move dht node setup back into node class 2018-03-28 15:53:47 -04:00
Jack Robison
e30ea50ef4
more 2018-03-28 15:53:47 -04:00
Jack Robison
3296c0fb3d
move dht related classes to lbrynet.dht 2018-03-28 15:53:47 -04:00
Jack Robison
ad6a2bef7f
handle error from old clients with a broken ping command 2018-03-28 15:53:45 -04:00
Jack Robison
446c3a88dc
refactor DHTHashAnnouncer and iterativeAnnounceHaveBlob
-use looping call for running manage function rather than a scheduled
callLater

-track announce speed

-retry store requests that failed up to 3 times

-return a dict of {blob_hash: [storing_node_id]} results from
_announce_hashes

_refreshRoutingTable inline cb refactor

-add and use DeferredLockContextManager

-don't trap errback from iterativeFindNode in iterativeAnnounceHaveBlob
2018-03-28 15:53:45 -04:00
Jack Robison
67ef8be7b7
convert node manage function to a looping call 2018-03-28 15:53:45 -04:00
Jack Robison
ecbe4113ce
move Distance to own file 2018-03-28 15:53:45 -04:00
Alex Grintsvayg
9ee5a3511d missed this in dht-compat merge 2018-03-23 12:50:18 -04:00
Alex Grintsvayg
d0aa0a7d0c make dht forwards-compatible for upcoming switch to standardized bencode dict keys 2018-03-13 09:43:32 -04:00
Antonio Quartulli
4f7885e499
dht_node: add hasContacts method
This method can be used by other components to check
if in the Node routing table there is at least one peer.

Signed-off-by: Antonio Quartulli <antonio@mandelbit.com>
2018-02-06 12:33:10 +08:00
Antonio Quartulli
ce0af77aa9
dht_node: split network start and join procedures
In order to attempt to join the DHT several times
(i.e. when the first attempt has failed) we need to
split the components initialization from the real
joining operation.

Create node.startNetwork() to initialize the node
and keep the rest in node.joinNetwork()

Signed-off-by: Antonio Quartulli <antonio@mandelbit.com>
2018-02-06 12:19:33 +08:00
Kay Kurokawa
b380f5d344 completely remove unused from_peer field 2017-11-07 09:56:40 -05:00
Kay Kurokawa
9776655c3c remove unneeded if statement in getPeersForBlob 2017-11-07 09:56:40 -05:00
Kay Kurokawa
7e8f3254b1 Add to DHT Node class initialization argument peerPort where it serves blobs, instead of specifying it in announceHaveBlob 2017-11-07 09:56:40 -05:00
Antonio Quartulli
965969b856 Don't filter out local node ID when returning peer list
If a node is returning a peer list for a given blob hash
(being this been requested via CLI or via DHT) and it is
part of the resulting peer list, it will filter itself out
before returning the list.

This makes the results across the DHT inconsistent as
different nodes won't include themselves when
responding a findValue/findNode query.

Remove such filtering so that the local node ID is always
included when needed.

Signed-off-by: Antonio Quartulli <antonio@mandelbit.com>
2017-11-07 09:56:40 -05:00
Jack Robison
fdaaa0e678
changelog 2017-10-30 13:09:02 -04:00
Jack Robison
e89f3db31b
fix remaining length of close nodes list 2017-10-27 21:46:17 -04:00
Antonio Quartulli
673d1c4d43
Extend close nodes list by right amount
When a k-bucket does not contain enough close nodes, the
DHT will look into neighbouring k-buckets in order to entend
the list of returned nodes.

However, the list should not be extended beyond its maximum size.

Signed-off-by: Antonio Quartulli <antonio@mandelbit.com>
2017-10-26 02:21:24 +08:00
Jack Robison
628c46e5d9
catch id validation errors 2017-10-24 20:26:03 -04:00
Jack Robison
e2259fd8f7
fix dht rpc id length 2017-10-24 20:25:54 -04:00
Jack Robison
9479179259
avoid future contact id parsing bugs by passing the contact id as an arg 2017-10-24 19:17:17 -04:00
Jack Robison
0b771c16ba
fix lbry id for dead contact to replace in _IterativeFindHelper 2017-10-24 19:13:45 -04:00
Jack Robison
45adfc533b
fix id of new contact replacing a dead contact 2017-10-23 01:34:34 -04:00
Jack Robison
d23d4c1d73
fix lbryid length comparison 2017-10-23 01:23:04 -04:00
Jack Robison
e9fd8eb096
update tests and scripts 2017-10-10 13:55:31 -04:00
Jack Robison
9919fd06c6
uncomment error for store request where contact is not known 2017-10-10 13:29:54 -04:00
Jack Robison
c9515f8fb6
logging and whitespace 2017-10-10 13:29:29 -04:00
Jack Robison
5937ead17c
add Node.contacts helper property 2017-10-10 13:28:57 -04:00
Jack Robison
23ce278f8a
add removePeer to interface 2017-10-10 13:27:44 -04:00
Jack Robison
de1dc507ac
fix findCloseNodes when buckets aren't fully populated 2017-10-10 13:21:06 -04:00
Jack Robison
ab956d4a8e
use count parameter in findCloseNodes 2017-10-10 13:20:19 -04:00
Jack Robison
7c50e26bd7
include method and args in _sentMessages 2017-10-10 13:19:03 -04:00
Jack Robison
a942e6f3eb
fix args for ping() 2017-10-10 13:18:38 -04:00
Jack Robison
fe2d6bad1b
fix logging error for dht rpc methods with no args (ping) 2017-10-10 13:18:00 -04:00
Jack Robison
3096c89e37
don't wrap exceptions with Failure 2017-10-10 13:17:36 -04:00
Jack Robison
2a47385b62
add rpcAttempts and replacementCacheSize constants 2017-10-10 13:16:26 -04:00