Commit graph

2502 commits

Author SHA1 Message Date
Jack Robison 07f92014d7
omit bad contacts from getPeersForBlob
-refresh stored contacts to detect when they go offline or come back
2018-06-07 15:02:47 -04:00
Jack Robison 98e21cdba0
test re-join dht 2018-06-07 15:02:47 -04:00
Jack Robison c521120b17
update and fix hash announcer test 2018-06-07 15:02:47 -04:00
Jack Robison d02ed29e50
add kademlia store and expiration test 2018-06-07 15:02:47 -04:00
Jack Robison 470ebe2de3
remove unnecessary CallLaterManager from test_contact_rpc 2018-06-07 15:02:47 -04:00
Jack Robison b5f3ed5542
update contact expiration test and add re-join after expiration test 2018-06-07 15:02:47 -04:00
Jack Robison 877da78505
ping contacts right away during refresh instead of using PingQueue
-fixes contact expiration test
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 7da70cc02d
test peer expiration 2018-06-07 15:02:47 -04:00
Jack Robison d3f4155a2b
add unit tests for contact_is_good 2018-06-07 15:02:47 -04:00
Jack Robison d250e4d91a
add iterative find test 2018-06-07 15:02:47 -04:00
Jack Robison 950ec5bc9a
update mocks and dht tests
-reorganize dht tests
2018-06-07 15:02:47 -04:00
Jack Robison bdd6f948ca
add port to routing_table_get 2018-06-07 15:02:47 -04:00
Jack Robison cc32d987b2
update peer_list 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 9920ff59d4
force KBucket refreshes 2018-06-07 15:02:47 -04:00
Jack Robison ae22468fec
fix CallLaterManager trying to remove pending calls multiple times 2018-06-07 15:02:47 -04:00
Jack Robison aee7a3aa38
simplify announceHaveBlob, remove unused getPeersForBlob 2018-06-07 15:02:47 -04:00
Jack Robison 372fb45e06
refactor dht bootstrap
after finding the closest nodes try to populate the buckets out by looking up random ids in their key ranges
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 1adf4f7818
fix constant used to check if a bucket is fresh 2018-06-07 15:02:47 -04:00
Jack Robison 05241012a2
update contact replacement in KBucket to follow BEP0005
http://www.bittorrent.org/beps/bep_0005.html
2018-06-07 15:02:47 -04:00
Jack Robison cf3359044d
fix conditions for when a kbucket should be split
https://stackoverflow.com/a/32187456
2018-06-07 15:02:47 -04:00
Jack Robison 5631a24881
improve findCloseNodes, choose closest contacts from higher and lower buckets 2018-06-07 15:02:47 -04:00
Jack Robison c654bfe296
use reactor clock in TreeRoutingTable instead of time module 2018-06-07 15:02:47 -04:00
Jack Robison d4e28216a0
sort KBucket.getContacts 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 f1e0a784d9
refactor iterativeFind, move to own file 2018-06-07 15:02:47 -04:00
Jack Robison e5703833cf
prevent duplicate entries in the datastore 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 ad2dcf0893
add the parent node id to KBucket 2018-06-07 15:02:47 -04:00
Jack Robison 406ddaa4ef
use base class to simplify Node init
-add looping call helpers which use the same clock as the Node
2018-06-07 15:02:47 -04:00
Jack Robison e52689a33d
remove OptimizedTreeRoutingTable for now, use TreeRoutingTable 2018-06-07 15:02:47 -04:00
Jack Robison d65dc0aec3
disable loading DictDataStore in Node.__init__
-to be re-done when the datastore uses sqlite
2018-06-07 15:02:47 -04:00
Jack Robison 159e153393
make DataStore clock mockable 2018-06-07 15:02:47 -04:00
Jack Robison 9ed08f8fc9
remove unused constant 2018-06-07 15:02:47 -04:00
Jack Robison a503a800ca
disable Cryptonator exchange rate feed 2018-06-07 15:02:47 -04:00
Jack Robison b673c508cc
disable NegotiatedPaymentRateManager, use OnlyFreePaymentsManager for now 2018-06-07 15:02:47 -04:00
Jack Robison 4bd9f3bd68
remove popular hash tracking, simplify DHTPeerFinder 2018-06-07 15:02:47 -04:00
Jack Robison e6ffd7caf8
remove hashwatcher 2018-06-07 15:02:47 -04:00
Victor Shyba b91181e640 refactor: simplify add_completed_blob + changelog 2018-05-30 16:19:49 -03:00
Lex Berezhny 23df1d0316
Merge branch 'master' into feature/file_list_sorting 2018-05-29 22:47:09 -04:00
Lex Berezhny 3d17c92bd3 moved import certifi to run only on windows 2018-05-29 22:36:37 -04:00
Akinwale Ariwodola c4550ef5b6 remove unused import in lbrynet.daemon.Daemon 2018-05-29 22:36:37 -04:00
Akinwale Ariwodola 97547e904e add os and sys imports 2018-05-29 22:36:37 -04:00
Victor Shyba 03968f377e change fix position to before anything else starts 2018-05-29 22:36:37 -04:00
Akinwale Ariwodola 513f5d0568 added certifi package for Twisted SSL verification on Windows 2018-05-29 22:36:37 -04:00
Jack Robison 02bcc98a6a
Bump version 0.20.0rc9 --> 0.20.0rc10
Signed-off-by: Jack Robison <jackrobison@lbry.io>
2018-05-29 15:56:58 -04:00