- 27 May, 2021 6 commits
-
-
gammazero authored
The execOnMany function was able to exit prematurely, leaving its child goroutines running. These would write to a channel that closed after execOnMany returned in findProvidersAsyncRoutine. The function is now able to run both in a sloppy mode where it allows goroutines to be cleaned up after the function has completed as well a safer non-sloppy mode where goroutines will complete before the function returns. The sloppy mode is used for DHT "get" operations like FindProviders and SearchValues whereas the non-sloppy mode is used for "put" operations like PutValue and Provide (along with their bulk operation equivalents). This fixes https://github.com/ipfs/go-ipfs/issues/8146
-
Adin Schmahmann authored
-
Adin Schmahmann authored
-
Adin Schmahmann authored
-
Adin Schmahmann authored
-
Adin Schmahmann authored
-
- 14 May, 2021 1 commit
-
-
Adin Schmahmann authored
* fullrt: add experimental FullRT DHT client The FullRT client periodically crawls the network to fill its local routing table and uses that to perform queries. It supports performing many provides or puts together taking advantage of efficiencies of grouping the DHT operations by where they will occur in the Kademlia space. Additionally, it has a more tunable function for determining when a query is complete that does not require waiting on any individual peer (which could be offline) to respond. This client is experimental and its exposed interfaces should be expected to change and break over time. * crawler: starting peers with addresses and peers found during a crawl have their addresses extended. logging improved * dht: move IpfsDHT options to the internal package. Make a breaking change to the filter interfaces to support more DHT implementations * dht: GetClosestPeers now returns a slice of peers instead of a channel of peers since we have to wait for the query to complete to return the closest peers anyway * dht: the subscriberNotifiee has been refactored to work more independently of the underlying message sender implementation
-