Commit graph

57 commits

Author SHA1 Message Date
Jack Robison 03769b94b8
accept invalid store tokens for the first expire-time after startup
this is to better handle nodes storing to us after we've restarted our node
2018-07-02 13:26:38 -04:00
Jack Robison 537df6c8ad
log socket errors 2018-06-07 15:02:47 -04:00
Jack Robison 9a63db4ec6
add protocol version to the dht and migrate old arg format for store 2018-06-07 15:02:47 -04:00
Jack Robison 8efede6ad6
maybe_ping bad and unknown contacts instead of only unknown 2018-06-07 15:02:47 -04:00
Jack Robison fb3aac15fa
add optional delay argument to enqueue_maybe_ping, fix default value 2018-06-07 15:02:47 -04:00
Jack Robison a952d2d2c8
reset _listeningPort and _listening Deferred on teardown 2018-06-07 15:02:47 -04:00
Jack Robison 3dfc6bd2cc
update CallLaterManager to be an object 2018-06-07 15:02:47 -04:00
Jack Robison 760417ff3a
pylint 2018-06-07 15:02:47 -04:00
Jack Robison 4f72098cad
use PingQueue to try refresh all contacts 2018-06-07 15:02:47 -04:00
Jack Robison c65274e9e5
add PingQueue to KademliaProtocol 2018-06-07 15:02:47 -04:00
Jack Robison 95ed1e044b
raise TransportNotConnected instead of logging a warning
-add a _listening Deferred to KademliaProtocol which is called when the protocol is started
2018-06-07 15:02:47 -04:00
Jack Robison 23c202b5e4
refactor Contact class, DHT RPCs, and Contact addition/removal
-track contact failures, last replied, and last requested. use this to provide a 'contact_is_good' property on Contact objects
-ensure no duplicate contact objects are created
-remove confusing conflation of node id strings with Contact objects, update docstrings
-move RPC failure tracking to a callback/errback pair in sendRPC (so the contact is only updated once)
-handle seed nodes during the join sequence by setting their node ids after they initially reply to our ping
-name all of the kademlia RPC keyword args, remove confusing **kwargs and dictionary parsing
-add host ip/port to DHT send/receive logging to make the results comprehensible when running many nodes at once
2018-06-07 15:02:47 -04:00
Jack Robison 11aad04c31
datagram decode error logging 2018-04-19 15:47:42 -04:00
Jack Robison b89823c968
fix blob announce locking up the daemon process 2018-04-19 15:47:19 -04:00
Jack Robison eabf4a0e40
remove delay from udp write 2018-03-28 18:50:24 -04:00
Jack Robison 5bab6f7d39
remove bandwidth stats 2018-03-28 18:50:24 -04:00
Jack Robison 14f9bb7b82
log EWOULDBLOCK 2018-03-28 15:53:51 -04:00
Jack Robison a96d827c0f
use reactor time in Delay 2018-03-28 15:53:50 -04:00
Jack Robison 5013426e02
logging and docstring 2018-03-28 15:53:50 -04:00
Jack Robison 5628d0825b
add CallLaterManager 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 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 ad6a2bef7f
handle error from old clients with a broken ping command 2018-03-28 15:53:45 -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
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 c9515f8fb6
logging and whitespace 2017-10-10 13:29:29 -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 fcaca05a81
fix redundant lbryid 2017-10-10 13:15:25 -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
Jack Robison d2f01a214d reduce logging level for noisy dht warning 2017-04-19 15:59:50 -04:00
Alex Grintsvayg 8db7c37fa7 exploring dht 2017-04-10 13:45:43 -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 c30ea04959 Remove commented code
This is the result of running eradicate (https://github.com/myint/eradicate)
on the code and double-checking the changes.
2016-12-15 18:58:06 -06:00
Job Evers-Meltzer 14ac2bac39 pylint: fix trailing-whitespace 2016-12-14 19:21:59 -06:00
Job Evers-Meltzer b64fa51567 fixup long lines 2016-12-07 09:38:34 -05:00
Jack 5ae3485411 Merge branch 'master' into error-messages
# Conflicts:
#	lbrynet/dht/protocol.py
2016-11-14 14:11:02 -05:00