* Replace the &mut TTopology with a &mut PollParameters
* Add supported_protocols
* Add external_addresses
* Report out addresses in Kademlia
* Fix the custom derive
* Some comments
* Fix compilation on stable
* Rework Kademlia for the new design
* Minor work on protocol.rs
* More work
* Remove QueryTarget::FindValue
* Finish work on query
* Query timeout test
* Work on topology
* More work
* Update protocols/kad/src/topology.rs
Co-Authored-By: tomaka <pierre.krieger1708@gmail.com>
* Fix trailing whitespaces
* Use if let
* Update connected peers' topics on NodeEvent
After a peer connects they send us the list of the topics they're subscribed to. This causes a NodeEvent to be emitted. This PR makes sure we update the subscription info we have on the newly connected peer.
* Formatting
* Update protocols/floodsub/src/layer.rs
Co-Authored-By: dvdplm <dvdplm@gmail.com>
* whiespace
* Move lib.rs to protocol.rs
* Rewrite floodsub for ProtocolsHandler
* Add a FloodsubBehaviour
* Fix closing floodsub after a message
* Address concern
* Make it conform to the protocol
* Make it really conformant
* Address concerns
* Add ProtocolsHandler trait
* Reexport symbols
* Add a note about shutting down
* Add a PeriodicPingHandler and a PingListenHandler
* Fix core doctest
* Add tolerating not supported
* Fix concerns
* remove tokio_current_thread tests
* Review changes:
Removed newline
Moved uds tokio test crate to top to avoid self and keep with convention of other test crates
Removed sleep from uds test and block until all futures are completed.
Instead of having one struct with uninitialised fields
which are mutated, have explicit states and ensure that the types
show that there is no ambiguity which data is available or not.
Consequently, this removes quite a few `unwrap`/`expect` calls.
* Use the sha2 crate in the handshake
* Return a Digest in algo_support instead of a ring ref
* Switch to ed25519-dalek for keys
* Make ring more or less optional
* Switch to ed25519_dalek for the verification
* Extract the key exchange to its own module
* Remove the ring RNG from the handshake
* Some warning fixes and forgot file
* Move key exchange to own module
* Remove usage of ring::digest
* Remove ring from handshake entirely
* Implement ECDH for WebCrypto
* Remove the libp2p-secio feature
* Fix ring being included
* Address some concerns
* Provde some panics in WebCrypto
* Prove the Hmac panic
* Prove more panics
Refactor multiaddr crate.
- Remove `AddrComponent`. Instead `Protocol` directly contains its
associated data.
- Various smaller changes around conversions to Multiaddr from other
types, e.g. socket addresses.
- Expand tests to include property tests which test encoding/decoding
identity.
* secio: keep ciphertext if start_send is not ready
Otherwise ciphertext may be thrown away and once sent, the cipher states
have diverged, resulting in nonsense messages on decryption side.
* Also attempt to send pending data `Sink::close`.
* Inline `send_pending`.