Skip to content

Commit

Permalink
Remove topics (#183)
Browse files Browse the repository at this point in the history
  • Loading branch information
Emilia Hane authored May 15, 2023
1 parent 9b56f9f commit 2216dd6
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 330 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Status]][Crates Link]
This is a rust implementation of the [Discovery v5](https://github.com/ethereum/devp2p/blob/master/discv5/discv5.md)
peer discovery protocol.

Discovery v5 is a protocol designed for encrypted peer discovery and topic advertisement. Each peer/node
Discovery v5 is a protocol designed for encrypted peer discovery (and topic advertisement tba). Each peer/node
on the network is identified via it's `ENR` ([Ethereum Node
Record](https://eips.ethereum.org/EIPS/eip-778)), which is essentially a signed key-value store
containing the node's public key and optionally IP address and port.
Expand Down
11 changes: 6 additions & 5 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
//! Record](https://eips.ethereum.org/EIPS/eip-778)), which is essentially a signed key-value store
//! containing the node's public key and optionally IP address and port.
//!
//! Discv5 employs a kademlia-like routing table to store and manage discovered peers and topics. The
//! Discv5 employs a kademlia-like routing table to store and manage discovered peers (and topics tba). The
//! protocol allows for external IP discovery in NAT environments through regular PING/PONG's with
//! discovered nodes. Nodes return the external IP address that they have received and a simple
//! majority is chosen as our external IP address. If an external IP address is updated, this is
Expand All @@ -27,11 +27,12 @@
//! * Handler - The protocol's communication is encrypted with `AES_GCM`. All node communication
//! undergoes a handshake, which results in a [`Session`]. [`Session`]'s are established when
//! needed and get dropped after a timeout. This section manages the creation and maintenance of
//! sessions between nodes and the encryption/decryption of packets from the socket. It is realised by the [`handler::Handler`] struct and it runs in its own task.
//! sessions between nodes and the encryption/decryption of packets from the socket. It is
//! realised by the [`handler::Handler`] struct and it runs in its own task.
//! * Service - This section contains the protocol-level logic. In particular it manages the
//! routing table of known ENR's, topic registration/advertisement and performs various queries
//! such as peer discovery. This section is realised by the [`Service`] struct. This also runs in
//! it's own thread.
//! routing table of known ENR's, (and topic registration/advertisement tba) and performs
//! parallel queries for peer discovery. This section is realised by the [`Service`] struct. This
//! also runs in it's own thread.
//! * Application - This section is the user-facing API which can start/stop the underlying
//! tasks, initiate queries and obtain metrics about the underlying server.
//!
Expand Down
Loading

0 comments on commit 2216dd6

Please sign in to comment.