829 Commits

Author SHA1 Message Date
ljedrz
0d74cea3df feat: add a bitswap stress test
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-31 15:52:56 +02:00
ljedrz
dc4cea6df5 refactor: less noisy upgrade_outbound
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-31 14:45:49 +02:00
ljedrz
d865c00278 fix: only report actually finished subscriptions
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-31 12:28:31 +02:00
bors[bot]
d92f56264e
Merge #273
273: improved tracing r=koivunej a=ljedrz

An attempt to have enhanced tracing capabilities, especially for test purposes; not everything is nicely assigned to a specific node, but it is definitely an improvement over what we have now.

This change allows us to see the following output in e.g. `exchange_block`:
```
running 1 test
Jul 30 16:13:42.567  INFO start{node="a"}: ipfs::p2p::behaviour: net: starting with peer id 12D3KooWKnZGUipX95ZGzqpQhPQ637euKNJ6b57H99mQcTt1hvox
Jul 30 16:13:42.577 DEBUG start{node="a"}: bitswap::behaviour: bitswap: new_handler
Jul 30 16:13:42.577 TRACE start{node="a"}: ipfs::p2p::swarm: new_handler
Jul 30 16:13:42.578 DEBUG bgtask{node="a"}: libp2p_tcp: Listening on "/ip4/127.0.0.1/tcp/35821"    
Jul 30 16:13:42.579  INFO start{node="b"}: ipfs::p2p::behaviour: net: starting with peer id 12D3KooWMYo2VuqaAE4pajBEs6mrPYND6WQrCkTF7NP1JoeQvwpc
Jul 30 16:13:42.579 DEBUG bgtask{node="a"}: libp2p_swarm: Listener ListenerId(1); New address: "/ip4/127.0.0.1/tcp/35821"    
Jul 30 16:13:42.589 DEBUG start{node="b"}: bitswap::behaviour: bitswap: new_handler
Jul 30 16:13:42.589 TRACE start{node="b"}: ipfs::p2p::swarm: new_handler
Jul 30 16:13:42.590 DEBUG bgtask{node="b"}: libp2p_tcp: Listening on "/ip4/127.0.0.1/tcp/43797"    
Jul 30 16:13:42.590 DEBUG bgtask{node="b"}: libp2p_swarm: Listener ListenerId(1); New address: "/ip4/127.0.0.1/tcp/43797"    
Jul 30 16:13:42.590 TRACE bgtask{node="a"}: ipfs::p2p::swarm: starting to connect to /ip4/127.0.0.1/tcp/43797
Jul 30 16:13:42.590 DEBUG bgtask{node="a"}: ipfs::subscription: Creating subscription 0 to Connect to /ip4/127.0.0.1/tcp/43797
Jul 30 16:13:42.590 DEBUG bgtask{node="a"}: bitswap::behaviour: bitswap: new_handler
Jul 30 16:13:42.590 TRACE bgtask{node="a"}: ipfs::p2p::swarm: new_handler
Jul 30 16:13:42.590 DEBUG bgtask{node="a"}: libp2p_tcp: Dialing /ip4/127.0.0.1/tcp/43797    
Jul 30 16:13:42.591 TRACE bgtask{node="b"}: libp2p_tcp: Incoming connection from /ip4/127.0.0.1/tcp/51178 at /ip4/127.0.0.1/tcp/43797    
Jul 30 16:13:42.591 DEBUG bgtask{node="b"}: bitswap::behaviour: bitswap: new_handler
Jul 30 16:13:42.591 TRACE bgtask{node="b"}: ipfs::p2p::swarm: new_handler
Jul 30 16:13:42.591 TRACE bgtask{node="b"}: ipfs: IncomingConnection { local_addr: "/ip4/127.0.0.1/tcp/43797", send_back_addr: "/ip4/127.0.0.1/tcp/51178" }
Jul 30 16:13:42.595 DEBUG bgtask{node="b"}: libp2p_swarm: Connection established: Connected { endpoint: Listener { local_addr: "/ip4/127.0.0.1/tcp/43797", send_back_addr: "/ip4/127.0.0.1/tcp/51178" }, info: PeerId("12D3KooWKnZGUipX95ZGzqpQhPQ637euKNJ6b57H99mQcTt1hvox") }; Total (peer): 1.    
Jul 30 16:13:42.595 TRACE bgtask{node="b"}: ipfs::p2p::swarm: inject_connected 12D3KooWKnZGUipX95ZGzqpQhPQ637euKNJ6b57H99mQcTt1hvox Listener { local_addr: "/ip4/127.0.0.1/tcp/43797", send_back_addr: "/ip4/127.0.0.1/tcp/51178" }
Jul 30 16:13:42.595 DEBUG bgtask{node="b"}: ipfs::subscription: Finishing the subscription to Connect to /ip4/127.0.0.1/tcp/51178
Jul 30 16:13:42.595 DEBUG bgtask{node="b"}: bitswap::behaviour: bitswap: inject_connected 12D3KooWKnZGUipX95ZGzqpQhPQ637euKNJ6b57H99mQcTt1hvox
Jul 30 16:13:42.595 TRACE bgtask{node="b"}: ipfs: ConnectionEstablished { peer_id: PeerId("12D3KooWKnZGUipX95ZGzqpQhPQ637euKNJ6b57H99mQcTt1hvox"), endpoint: Listener { local_addr: "/ip4/127.0.0.1/tcp/43797", send_back_addr: "/ip4/127.0.0.1/tcp/51178" }, num_established: 1 }
Jul 30 16:13:42.595 DEBUG bgtask{node="a"}: libp2p_swarm: Connection established: Connected { endpoint: Dialer { address: "/ip4/127.0.0.1/tcp/43797" }, info: PeerId("12D3KooWMYo2VuqaAE4pajBEs6mrPYND6WQrCkTF7NP1JoeQvwpc") }; Total (peer): 1.    
Jul 30 16:13:42.595 TRACE bgtask{node="b"}: ipfs::p2p::behaviour: kad: peer 12D3KooWKnZGUipX95ZGzqpQhPQ637euKNJ6b57H99mQcTt1hvox is unroutable
Jul 30 16:13:42.595 TRACE bgtask{node="a"}: ipfs::p2p::swarm: inject_connected 12D3KooWMYo2VuqaAE4pajBEs6mrPYND6WQrCkTF7NP1JoeQvwpc Dialer { address: "/ip4/127.0.0.1/tcp/43797" }
Jul 30 16:13:42.596 DEBUG bgtask{node="a"}: ipfs::subscription: Finishing the subscription to Connect to /ip4/127.0.0.1/tcp/43797
Jul 30 16:13:42.596 TRACE ipfs::subscription: Dropping subscription 0 to Connect to /ip4/127.0.0.1/tcp/43797
Jul 30 16:13:42.596 DEBUG bgtask{node="a"}: bitswap::behaviour: bitswap: inject_connected 12D3KooWMYo2VuqaAE4pajBEs6mrPYND6WQrCkTF7NP1JoeQvwpc
Jul 30 16:13:42.596 TRACE facade{node="a"}: ipfs::repo::mem: new block
Jul 30 16:13:42.596 TRACE bgtask{node="a"}: ipfs: ConnectionEstablished { peer_id: PeerId("12D3KooWMYo2VuqaAE4pajBEs6mrPYND6WQrCkTF7NP1JoeQvwpc"), endpoint: Dialer { address: "/ip4/127.0.0.1/tcp/43797" }, num_established: 1 }
Jul 30 16:13:42.596 DEBUG facade{node="a"}: ipfs::subscription: Finishing the subscription to Obtain block bafkreidisjp6jmjonhw67p4j2cwwr2lohkce3lqrkjwcngr6lqgsjb6g2i
Jul 30 16:13:42.596 DEBUG facade{node="b"}: ipfs::subscription: Creating subscription 1 to Obtain block bafkreidisjp6jmjonhw67p4j2cwwr2lohkce3lqrkjwcngr6lqgsjb6g2i
Jul 30 16:13:42.596 TRACE bgtask{node="a"}: ipfs::p2p::behaviour: kad: routing updated; 12D3KooWMYo2VuqaAE4pajBEs6mrPYND6WQrCkTF7NP1JoeQvwpc: ["/ip4/127.0.0.1/tcp/43797"]
Jul 30 16:13:42.597 TRACE bgtask{node="b"}: libp2p_kad::behaviour: Query QueryId(0) finished.    
Jul 30 16:13:42.597 DEBUG bgtask{node="b"}: ipfs::subscription: Finishing the subscription to Kad request QueryId(0)
Jul 30 16:13:42.597  WARN bgtask{node="b"}: ipfs::p2p::behaviour: kad: could not find a provider for bafkreidisjp6jmjonhw67p4j2cwwr2lohkce3lqrkjwcngr6lqgsjb6g2i
Jul 30 16:13:42.600 TRACE bgtask{node="a"}: ipfs::p2p::behaviour: ping: pong from 12D3KooWMYo2VuqaAE4pajBEs6mrPYND6WQrCkTF7NP1JoeQvwpc
Jul 30 16:13:42.601 TRACE bgtask{node="b"}: ipfs::p2p::behaviour: ping: pong from 12D3KooWKnZGUipX95ZGzqpQhPQ637euKNJ6b57H99mQcTt1hvox
Jul 30 16:13:42.602 DEBUG bitswap::protocol: upgrade_outbound: /ipfs/bitswap/1.1.0
Jul 30 16:13:42.602 DEBUG bgtask{node="a"}: bitswap::behaviour: bitswap: inject_event from 12D3KooWMYo2VuqaAE4pajBEs6mrPYND6WQrCkTF7NP1JoeQvwpc: (empty message)
Jul 30 16:13:42.603 TRACE bgtask{node="a"}: ipfs::p2p::behaviour: ping: rtt to 12D3KooWMYo2VuqaAE4pajBEs6mrPYND6WQrCkTF7NP1JoeQvwpc is 4 ms
Jul 30 16:13:42.603 DEBUG bgtask{node="b"}: bitswap::behaviour: bitswap: inject_event from 12D3KooWKnZGUipX95ZGzqpQhPQ637euKNJ6b57H99mQcTt1hvox: cancel: bafkreidisjp6jmjonhw67p4j2cwwr2lohkce3lqrkjwcngr6lqgsjb6g2i
Jul 30 16:13:42.604 TRACE bgtask{node="b"}: ipfs::p2p::behaviour: ping: rtt to 12D3KooWKnZGUipX95ZGzqpQhPQ637euKNJ6b57H99mQcTt1hvox is 3 ms
Jul 30 16:13:42.604 TRACE bgtask{node="a"}: libp2p_kad::behaviour: Request to PeerId("12D3KooWMYo2VuqaAE4pajBEs6mrPYND6WQrCkTF7NP1JoeQvwpc") in query QueryId(0) succeeded.    
Jul 30 16:13:42.604 TRACE bgtask{node="a"}: libp2p_kad::behaviour: Query QueryId(0) finished.    
Jul 30 16:13:42.604 TRACE bgtask{node="a"}: libp2p_kad::behaviour: Query QueryId(0) finished.    
Jul 30 16:13:42.604 DEBUG bgtask{node="a"}: ipfs::subscription: Finishing the subscription to Kad request QueryId(0)
Jul 30 16:13:42.604  INFO bgtask{node="a"}: ipfs::p2p::behaviour: kad: providing bafkreidisjp6jmjonhw67p4j2cwwr2lohkce3lqrkjwcngr6lqgsjb6g2i
Jul 30 16:13:42.605 TRACE libp2p_kad::handler: Inbound substream: EOF    
Jul 30 16:13:42.605 DEBUG bitswap::protocol: upgrade_outbound: /ipfs/bitswap/1.1.0
Jul 30 16:13:42.605 DEBUG bgtask{node="b"}: bitswap::behaviour: bitswap: inject_event from 12D3KooWKnZGUipX95ZGzqpQhPQ637euKNJ6b57H99mQcTt1hvox: (empty message)
Jul 30 16:13:42.606 DEBUG bgtask{node="a"}: bitswap::behaviour: bitswap: inject_event from 12D3KooWMYo2VuqaAE4pajBEs6mrPYND6WQrCkTF7NP1JoeQvwpc: want: bafkreidisjp6jmjonhw67p4j2cwwr2lohkce3lqrkjwcngr6lqgsjb6g2i 1
Jul 30 16:13:42.606  INFO bgtask{node="a"}: ipfs::p2p::behaviour: Peer 12D3KooWMYo2VuqaAE4pajBEs6mrPYND6WQrCkTF7NP1JoeQvwpc wants block bafkreidisjp6jmjonhw67p4j2cwwr2lohkce3lqrkjwcngr6lqgsjb6g2i with priority 1
Jul 30 16:13:42.607 TRACE bgtask{node="a"}: bitswap::behaviour: queueing block to be sent to 12D3KooWMYo2VuqaAE4pajBEs6mrPYND6WQrCkTF7NP1JoeQvwpc: bafkreidisjp6jmjonhw67p4j2cwwr2lohkce3lqrkjwcngr6lqgsjb6g2i
Jul 30 16:13:42.608 DEBUG bitswap::protocol: upgrade_outbound: /ipfs/bitswap/1.1.0
Jul 30 16:13:42.609 DEBUG bgtask{node="a"}: bitswap::behaviour: bitswap: inject_event from 12D3KooWMYo2VuqaAE4pajBEs6mrPYND6WQrCkTF7NP1JoeQvwpc: (empty message)
Jul 30 16:13:42.609 DEBUG bgtask{node="b"}: bitswap::behaviour: bitswap: inject_event from 12D3KooWKnZGUipX95ZGzqpQhPQ637euKNJ6b57H99mQcTt1hvox: block: bafkreidisjp6jmjonhw67p4j2cwwr2lohkce3lqrkjwcngr6lqgsjb6g2i
Jul 30 16:13:42.610 TRACE ipfs::repo::mem: new block
Jul 30 16:13:42.610 DEBUG ipfs::subscription: Finishing the subscription to Obtain block bafkreidisjp6jmjonhw67p4j2cwwr2lohkce3lqrkjwcngr6lqgsjb6g2i
Jul 30 16:13:42.610 TRACE facade{node="b"}: ipfs::subscription: Dropping subscription 1 to Obtain block bafkreidisjp6jmjonhw67p4j2cwwr2lohkce3lqrkjwcngr6lqgsjb6g2i
test exchange_block ... ok
```

Co-authored-by: ljedrz <ljedrz@gmail.com>
Co-authored-by: ljedrz <ljedrz@users.noreply.github.com>
2020-07-31 09:40:39 +00:00
ljedrz
1615640b05
apply review comment
Co-authored-by: Joonas Koivunen <joonas.koivunen@gmail.com>
2020-07-31 11:14:31 +02:00
ljedrz
97487d2868 feat: apply the tracing Span to everything the Swarm spawns
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-31 11:08:36 +02:00
ljedrz
ae17a11d7b fix: update README
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-30 18:07:24 +02:00
ljedrz
533e569b66 feat: use tracing in Ipfs methods
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-30 17:55:52 +02:00
ljedrz
e820e7a5e8 feat: keep a node's Span instead of its name
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-30 17:32:25 +02:00
bors[bot]
02beb5f46b
Merge #263
263: move bitswap Stats directly under Bitswap r=koivunej a=ljedrz

This makes the bitswap `Stats` persistent between peer disconnects.

In addition, remove the unused and no longer compatible `Ledger` tests.

Co-authored-by: ljedrz <ljedrz@gmail.com>
2020-07-30 14:04:16 +00:00
ljedrz
0abe1b4aa4 refactor: improve node init in some tests
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-30 15:59:14 +02:00
ljedrz
e0d43ed861 feat: more logs
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-30 15:21:03 +02:00
ljedrz
0140c673b8 feat: attach tracing to nodes
Co-authored-by: Joonas Koivunen <joonas@equilibrium.co>
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-30 14:53:38 +02:00
ljedrz
c1b30ff89f fix: persist the bitswap peer stats
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-30 12:50:36 +02:00
bors[bot]
c55298b6a4
Merge #271
271: Adjust subscription locking r=ljedrz a=koivunej

Fixes the number of critical sections in SubscriptionFuture from 2 to 1, helping out with the hangs in exchange_block which have been recorded in #134. Also backports the `related_subs` cleanup from #264.

Co-authored-by: Joonas Koivunen <joonas@equilibrium.co>
2020-07-30 08:49:00 +00:00
Joonas Koivunen
7b71137eb8 fix: cleanup also the Pending related subs
earlier commit already included cleanup for the Ready and Cancelled
cases and this will do the same for Pending cases. the end result
doesn't change but as is apparent from the test changes: a single
Some(0) becomes None. however this does remove leaking and potential
bugs when a previously completed subscription would be reused.
2020-07-30 11:10:20 +03:00
Joonas Koivunen
19f79dd690 fix: replace two critical sections with one
merging these two together has the benefit of never removing
Subscription from the registry while polling as it seemed quite frequent
to *miss* the completion notice by trying to juggle the two critical
sections. this seems to have at least made the exchange_block test
failure reproduction locally difficult.
2020-07-30 11:08:28 +03:00
bors[bot]
39feb8eeb9
Merge #270
270: Replace log with tracing r=koivunej a=ljedrz

The latter is better suited for `async` applications.

This is mostly a very basic 1:1 change with a few extra improvements.

Co-authored-by: ljedrz <ljedrz@gmail.com>
2020-07-29 15:42:41 +00:00
ljedrz
e52108d564 feat: improve some Debug impls and add a few extra logs
Co-authored-by: Joonas Koivunen <joonas@equilibrium.co>
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-29 14:54:38 +02:00
ljedrz
a284c1f841 feat: replace log with tracing
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-29 14:50:00 +02:00
bors[bot]
cb002eb642
Merge #269
269: Remove unwrap usage in continue_walk r=koivunej a=c410-f3r

This is a first step towards #200 

Co-authored-by: Caio <c410.f3r@gmail.com>
2020-07-29 06:11:55 +00:00
Caio
eb99452664 Remove unwrap usage in continue_walk 2020-07-28 15:04:41 -03:00
bors[bot]
fca34088c3
Merge #261
261: update remaining deps r=koivunej a=ljedrz

In order to tackle the test timeout issue I decided to update the remaining dependencies to make sure the root cause is not already fixed upstream.

The only direct dependency that couldn't be updated is `unsigned-varint`, because `cid` depends on the version we are currently using.

Co-authored-by: ljedrz <ljedrz@gmail.com>
2020-07-28 12:32:40 +00:00
ljedrz
3b6ad52d85 chore: update remaining deps
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-28 13:44:45 +02:00
bors[bot]
f60ac1a8c2
Merge #267
267: ci: use vcpkg for openssl on windows r=ljedrz a=koivunej

Hoping to find something to help with #261:
 - switch to using [lukka/run-vcpkg](https://github.com/lukka/run-vcpkg)
 - get rid of the llvm dependency on windows (it was not needed)
 - update openssl dep to 0.10.30

Co-authored-by: Joonas Koivunen <joonas@equilibrium.co>
2020-07-28 10:50:00 +00:00
Joonas Koivunen
2bd1f588a0 chore: update openssl dep 2020-07-28 13:34:25 +03:00
Joonas Koivunen
4a9390f85a ci: use run-vcpkg for openssl
run-vcpkg should handle caching properly for us. See #261 for it not
working properly, there were linker errors with latest openssl-sys.

This also gets rid of the llvm dependency on windows which wasn't
eventually needed. I guess there is such thing as binary compatibility
after all!
2020-07-28 13:32:51 +03:00
bors[bot]
7ebe1a6365
Merge #260
260: Initial content discovery r=koivunej a=ljedrz

An initial implementation of content discovery via DHT, where a `get_block` request that doesn't succeed locally results in a call to `Kademlia::get_providers`. It also fixes (AKA fixes in most cases) the previously prototyped display of Kademlia content keys, in this case `Cid`s.

cc https://github.com/rs-ipfs/rust-ipfs/issues/10

Co-authored-by: ljedrz <ljedrz@gmail.com>
2020-07-28 08:16:13 +00:00
ljedrz
a4be9cddd6 refactor: change the ipfs.docs Cid to the logo one
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-28 09:58:40 +02:00
ljedrz
d0908104a3 fix: don't initialize the global test logger twice
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-28 09:58:40 +02:00
ljedrz
443bfad372 fix: remove a stray clone
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-28 09:58:40 +02:00
ljedrz
e98e86b188 fix: set up the kad protocol in the content discovery test
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-28 09:58:40 +02:00
ljedrz
49390676bf feat: rename the variables in the kad test, add a new content discovery one
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-28 09:58:40 +02:00
ljedrz
10974f8918 feat: enable content discovery features
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-28 09:58:40 +02:00
bors[bot]
9e491a68f3
Merge #259
259: Multihash-based repo r=koivunej a=ljedrz

We currently have an ad-hoc `Cid`-upgrading mechanism in place for the legacy `v0` version that is complicated and error-prone; when working on the `SubscriptionRegistry` I had to disable some of those upgrades, but some of them were still applied in the `Repo` (and necessary in order for the conformance tests to pass), making it hard to work on further functionalities like content discovery.

The solution I came up with is to introduce a `RepoCid` wrapper in order to make the keys in `Repo` objects operate on the associated `Multihash` instead of the whole `Cid`. Changing them to plain `Multihash`es wouldn't work, as we are still expected to return `Cid`s for the purposes of e.g. `Ipfs::local_refs` and I'm pretty sure some of the conformance tests still expect the full `Cid` to be available.

The only drawback is some extra `clone()`ing, but the improvement in code clarity and the unblocking of further changes is well worth it. This change also simplifies one of our conformance test patches (local refs).

~~I'm marking this PR as a draft in hopes that I can still come up with some solution to the extra cloning.~~ This is hard; I'm not able to do this at the moment, but this shouldn't be a blocker.

Co-authored-by: ljedrz <ljedrz@gmail.com>
2020-07-28 07:30:09 +00:00
bors[bot]
1367a30a8c
Merge #265
265: Use async macro for tests r=ljedrz a=c410-f3r

Fixes #248 

Co-authored-by: Caio <c410.f3r@gmail.com>
2020-07-27 18:09:01 +00:00
Caio
1107b29114 Rustfmt 2020-07-27 13:16:54 -03:00
Caio
e42b88c6a6 Use async macro for tests 2020-07-27 13:00:40 -03:00
ljedrz
6188425c59 chore: remove unused Ledger tests
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-27 11:14:32 +02:00
ljedrz
b1aa5a2a7d refactor: move bitswap stats directly under the Bitswap object
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-27 11:11:56 +02:00
ljedrz
af3e539444 fix: adjust the existing local_refs conformance test patch
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-23 14:28:12 +02:00
ljedrz
7201b1b82f fix: adjust test_inner_local
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-23 13:58:49 +02:00
ljedrz
fc5d63319e perf: make Block equality depend only on its Multihash
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-23 12:52:23 +02:00
ljedrz
e9e788fce2 feat: disregard Cid upgrades; only care about the Multihash in the Repo
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-23 12:52:23 +02:00
bors[bot]
6bee0b57e6
Merge #256
256: some groundwork for peer/content discovery r=koivunej a=ljedrz

Some groundwork for peer and content discovery using `libp2p::kad`.

~~Very much a WIP with plenty of prototyping and wild `println!`s.~~

Cc https://github.com/rs-ipfs/rust-ipfs/issues/10

Co-authored-by: ljedrz <ljedrz@gmail.com>
2020-07-22 14:23:42 +00:00
ljedrz
5b02b62b85 fix: move bootstrap and add_peer methods to Node
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-22 15:59:58 +02:00
ljedrz
b41490fe31 fix: classic Default::default() fun plus remove explicit kad protocol names
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-22 15:47:25 +02:00
ljedrz
c14f9e60cb chore: document new DHT-related Ipfs methods
Co-authored-by: Joonas Koivunen <joonas.koivunen@gmail.com>
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-22 15:40:13 +02:00
ljedrz
962f389e46 fix: move get_closest_peers from Ipfs to Node
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-22 15:37:37 +02:00
ljedrz
ff1765ba10 fix: remove unused params in Node::new and IpfsOptions::inmemory_with_generated_keys
Signed-off-by: ljedrz <ljedrz@gmail.com>
2020-07-22 15:35:25 +02:00