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
Jack Robison
fcaca05a81
fix redundant lbryid
2017-10-10 13:15:25 -04:00
Jack Robison
46e31d5b45
getPeersForBlob inlinecallbacks refactor
2017-10-10 13:12:47 -04:00
Jack Robison
8e9f3c90a1
use looping call for Node.change_token to avoid hanging delayedCalls
2017-10-10 13:10:47 -04:00
Jack Robison
f1980f524e
fix raising remote exceptions
2017-10-10 13:09:25 -04:00
Jack Robison
4a567f7ab1
organize dht errors and interfaces
2017-10-10 13:08:22 -04:00
Jack Robison
422dbb549b
catch network-unreachable error in dht protocol
2017-07-14 14:29:12 -04:00
Jack Robison
9f15573742
add unique_contacts
2017-06-14 15:46:38 -04:00
Jack Robison
02475ff985
add dht bandwidth tracking
2017-05-30 11:41:54 -04:00
Jack Robison
8243349b20
use reactor.fireSystemEvent instead of reactor.stop
2017-05-01 21:09:24 -04:00
Alex Grintsvayg
cdf67de46c
pylint type checking
2017-04-25 14:36:14 -04:00
Alex Grintsvayg
fd51d8ddf0
pylint
2017-04-25 14:36:14 -04:00
Jack Robison
d2f01a214d
reduce logging level for noisy dht warning
2017-04-19 15:59:50 -04:00
Jack Robison
105fa0b947
pylint
2017-04-10 13:59:31 -04:00
Alex Grintsvayg
8db7c37fa7
exploring dht
2017-04-10 13:45:43 -04:00
Alex Grintsvayg
99e4f9b00b
we dont always want to encode key here. bucket.keyInRange() already does it when necessary
2017-04-04 15:01:59 -04:00
Alex Grintsvayg
502e2227b5
fix KeyError bug in dht
2017-03-31 14:26:19 -04:00
Alex Grintsvayg
850f51140e
formatting
2017-03-31 13:32:43 -04:00
jobevers
71123c0de1
add warning log on EWOULDBLOCK
2017-02-11 13:04:36 -06:00
Alex Grintsvayg
35b2e56bd4
silence "[Errno 11] Resource temporarily unavailable" error
2017-02-11 13:04:35 -06:00
Job Evers-Meltzer
8fe15f507b
Better dht shutdown.
...
The old code relied on the timing of DelayedCalls
to see what had been called or not, but unfortunately
we don't have a real-time OS so the timing on DelayedCalls
can only be approximate. Changed to explicitly keep
track of which calls had been made.
This simplifies the shutdown logic drastically, and I believe
we can take out the reactor.iterate() now
2016-12-15 23:44:35 -06:00
Job Evers-Meltzer
84baa5e065
dht: refactor _msgTimeout
2016-12-15 18:58:16 -06:00
Job Evers-Meltzer
4f3b5cd802
Better logging on DHT errors
...
Timeout errors are common on the dht so log those
at debug, but other errors need to (potentially) recieve
more attention
2016-12-15 18:58:16 -06:00
Job Evers-Meltzer
250831a86a
remove unused distance function from routingtable
2016-12-15 18:58:15 -06:00
Job Evers-Meltzer
323bccb0ae
another distance optimization
2016-12-15 18:58:15 -06:00