Commit Graph

843 Commits

Author SHA1 Message Date
053197bd1c Rework the Kademlia high-level system (#282)
* Kademlia high-level rework

* Some changes in the rework

* Some additional tweaks to kad rework

* Add update_kbuckets

* Rename a bunch of Kademlia stuff

* Add KadSystem::local_peer_id

* Some documentation update

* Concern

* Make the example compile

* Make things nicer

* Fix bug in UniqueConnec

* Add clear() to UniqueConnec

* Add UniqueConnec::poll

* Fix potential deadlock in UniqueConnec

* Add UniqueConnec::state()

* The future of get now contains a Weak

* Fix concerns
2018-07-17 15:51:11 +02:00
6bda589389 Some cleanup with clippy and rustfmt (#310) 2018-07-17 11:55:18 +02:00
bd965d1668 Test creating lots of connections amongst lots of swarm (#304)
* Use the new version of tokio

* Add tests for lots of connections in a swarm

* Remove wrongly-added file
2018-07-16 16:56:05 +02:00
80f0f9986a Add yamux in the reexports (#305) 2018-07-16 12:45:28 +02:00
16e3453b7f Use the new version of tokio (#303) 2018-07-16 12:15:27 +02:00
e74e3f4950 Remove the AsyncRead/Write bounds in ConnectionUpgrade (#302) 2018-07-14 14:12:19 +02:00
7c71ffddb2 Remove exposed unimplemented!() in the Kad server (#298) 2018-07-14 13:58:16 +02:00
4592d1b21e SwarmController::dial now returns a Future (#290)
* SwarmController::dial now returns a Future

* Minor comment
2018-07-14 13:46:11 +02:00
c05e7e0c4e Two minor swarm tests (#300) 2018-07-14 13:31:22 +02:00
5639b04fc5 Fix travis (#301) 2018-07-14 09:10:35 +02:00
857c6653ec Always identify the remote (#277) 2018-07-11 14:35:24 +02:00
b3ed7f852a Fix the authors in multiple Cargo.toml (#293) 2018-07-11 13:06:42 +02:00
f104dd9036 Run rustfmt on files that aren't really touched (#289) 2018-07-11 11:14:40 +02:00
e11fac938e Fix Thisis (#292) 2018-07-11 10:56:48 +02:00
d5602e7687 Add support for yamux multiplexing. (#284)
* Add support for yamux multiplexing.

* Address review comments.
2018-07-10 14:59:24 +02:00
fd01b18e53 Upgrade and unify protobuf version(1.x => 2.0.2) (#283)
* Update and unify protobuf version(1.x => 2.0.2)

* Update protobuf codegen shell script
2018-07-10 14:07:28 +02:00
18075f4eaa Give access to secio ephemeral key (#280)
* Give access to secio ephemeral key

* Fix tests
2018-07-04 17:07:38 +02:00
03947908b4 Add upgrade::toggleable (#281)
* Add upgrade::toggleable

* Some minor fixes/improvements
2018-07-03 16:10:15 +02:00
e2690f1c92 Use eth-secp256k1 instead of secp256k1 (#279) 2018-07-02 11:56:50 +02:00
76f13ab5e5 Instantly deny IPs of the form 0.0.0.0:0 (#275)
* Instantly deny IPs of the form 0.0.0.0:0

* Also put the change in websockets
2018-07-02 10:51:10 +02:00
a7a06aa5ab Fix wrong endpoint in and_then (#278) 2018-06-28 10:24:24 +02:00
143a1845b1 The PeerId is the hash of the protobuf encoding (#276) 2018-06-25 17:56:36 +02:00
8997928c5f Add Peerstore::rm_addr methods (#274) 2018-06-25 15:40:35 +02:00
8c4945ffb5 Add a TransportTimeout wrapper (#234)
* Add a TransportTimeout wrapper

* Add outgoing/ingoing only timeouts
2018-06-25 15:12:39 +02:00
795961b15e Fix the public key format in the IdentifyInfo (#264)
* Fix the public key format in the IdentifyInfo

* Move PublicKey type to core

* Oops
2018-06-25 14:54:55 +02:00
de39e321e9 Fix a missing loop in SwarmFuture::poll (#272) 2018-06-25 14:29:15 +02:00
0f0ae368b8 Create the parent directory of a JSON datastore (#270) 2018-06-22 17:36:30 +02:00
16967abda7 Use tokio-codec. (#271) 2018-06-22 16:12:23 +02:00
75df40010b Make secp256k1 optional (#266) 2018-06-22 13:07:57 +02:00
ab96f7efe0 Add loops around stream polling (#251) 2018-06-22 11:02:47 +02:00
02bf7604d0 Fix protobuf again (#269) 2018-06-21 16:53:23 +02:00
30ffa2f256 Revert to old protobuf generation system (#268)
* Revert "Remove old protoc scripts and artifacts (#262)"

This reverts commit 32ef50b822.

* Revert "Use pure-rust protoc (#255)"

This reverts commit 217fae405f.
2018-06-21 15:47:13 +02:00
Jef
32ef50b822 Remove old protoc scripts and artifacts (#262) 2018-06-21 15:03:58 +02:00
2d4fe77275 Fix kademlia server end (#254) 2018-06-21 14:13:25 +02:00
6ed518e9a5 Add logging for multistream handshake (#260) 2018-06-21 13:44:07 +02:00
8aa719c532 Return WouldBlock if flushing did not complete. (#265) 2018-06-21 11:57:15 +02:00
Jef
217fae405f Use pure-rust protoc (#255) 2018-06-20 13:40:01 +02:00
1607fcb3f4 Add support for secp256k1 in secio (#258) 2018-06-20 09:47:43 +02:00
fd4c5fad44 Remove the observed address from identify protocol (#253) 2018-06-19 16:14:27 +02:00
7b375798a5 The Multiaddr of the remote is now a Future (#249)
* The Multiaddr of the remote is now a Future

* The multiaddress future in swarm is now a Box
2018-06-19 14:38:55 +02:00
8fb919321b Fix exchange algorithm in secio (#257) 2018-06-19 13:57:47 +02:00
f74cf9f126 Don't unwrap in Kademlia protocol (#252)
* Don't unwrap in Kademlia protocol

* Debug assert that the alloc is correct

* Ignore non-peer CIDs

* Fix concerns
2018-06-14 16:34:07 +02:00
51471fe2e4 Minor Future simplification in dns (#248) 2018-06-11 11:33:45 +02:00
6897eca91f Lots of improvements to kademlia code (#243)
* No longer panic when updating self peer ID in kbuckets

* Minor code improvement in flush()

* Small improvement to handle_find_node_req

* expected_pongs no longer mut

* Clean up KadServerInterface trait

* find_node() returns an impl Future

* Rework kad_server's API to remove the interface

* Remove the error mapping in kad_bistream.split()

* Use a name type in protocol.rs

* respond() now takes an iter of Peers + add tests

* Use concrete Future type in kad_server upgrade

* Let the high level code decide the TTL of the addrs

* Replace QueryInterface::send with find_node_rpc

* Replace KademliaProcessingFuture with KademliaPeerReqStream

* requested_peers() now returns an iter

* gen_random_id() only requires &PeerId

* Remove QueryInterface and return stream of events

* Remove add_peer_addrs from query

* Remove the peer_store and record_store params

* Tweak multiaddresses reportin

* Remove dependency on peerstore

* Fix tests
2018-06-07 17:15:19 +02:00
c4a92e2493 Update summary of crates with missing crates (#242)
* Update summary of crates with missing crates

* Add relay and fix line breaks (use soft wrap in the editor)

* Readd an extra at EOF
2018-06-06 13:18:59 +02:00
28fdf23d67 Add some regression tests in libp2p-core (#237) 2018-06-05 19:01:18 +02:00
dbbee5756e Use stronger typing for the public key of identify (#236)
* Use stronger typing for the public key of identify

* Add PartialEq/Eq implementations

* Fix tests

* Also change is_public_key()
2018-06-05 12:29:59 +02:00
be2fa0e531 Turn warn! into debug! (#235) 2018-06-04 15:53:58 +02:00
57c3103f78 Integrate the multiformats crates (#231)
* Remove the multihash patch

* Integrate the multiformats crates

* Fix not compiling on emscripten
2018-06-01 10:10:00 +02:00
9e2dfd3fa5 Add SecioKeyPair::to_public_key and as_public_key_bytes (#232)
* Add SecioKeyPair::to_public_key and as_public_key_bytes

* Add to_peer_id instead
2018-05-31 18:35:18 +02:00