mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-06-21 13:51:33 +00:00
docs(examples): add a README to each example
Resolves #3853. Pull-Request: #3974.
This commit is contained in:
@ -18,62 +18,8 @@
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
// DEALINGS IN THE SOFTWARE.
|
||||
|
||||
//! # File sharing example
|
||||
//!
|
||||
//! Basic file sharing application with peers either providing or locating and
|
||||
//! getting files by name.
|
||||
//!
|
||||
//! While obviously showcasing how to build a basic file sharing application,
|
||||
//! the actual goal of this example is **to show how to integrate rust-libp2p
|
||||
//! into a larger application**.
|
||||
//!
|
||||
//! ## Sample plot
|
||||
//!
|
||||
//! Assuming there are 3 nodes, A, B and C. A and B each provide a file while C
|
||||
//! retrieves a file.
|
||||
//!
|
||||
//! Provider nodes A and B each provide a file, file FA and FB respectively.
|
||||
//! They do so by advertising themselves as a provider for their file on a DHT
|
||||
//! via [`libp2p-kad`]. The two, among other nodes of the network, are
|
||||
//! interconnected via the DHT.
|
||||
//!
|
||||
//! Node C can locate the providers for file FA or FB on the DHT via
|
||||
//! [`libp2p-kad`] without being connected to the specific node providing the
|
||||
//! file, but any node of the DHT. Node C then connects to the corresponding
|
||||
//! node and requests the file content of the file via
|
||||
//! [`libp2p-request-response`].
|
||||
//!
|
||||
//! ## Architectural properties
|
||||
//!
|
||||
//! - Clean clonable async/await interface ([`Client`](network::Client)) to interact with the
|
||||
//! network layer.
|
||||
//!
|
||||
//! - Single task driving the network layer, no locks required.
|
||||
//!
|
||||
//! ## Usage
|
||||
//!
|
||||
//! A two node setup with one node providing the file and one node requesting the file.
|
||||
//!
|
||||
//! 1. Run command below in one terminal.
|
||||
//!
|
||||
//! ```sh
|
||||
//! cargo run -- --listen-address /ip4/127.0.0.1/tcp/40837 \
|
||||
//! --secret-key-seed 1 \
|
||||
//! provide \
|
||||
//! --path <path-to-your-file> \
|
||||
//! --name <name-for-others-to-find-your-file>
|
||||
//! ```
|
||||
//!
|
||||
//! 2. Run command below in another terminal.
|
||||
//!
|
||||
//! ```sh
|
||||
//! cargo run -- --peer /ip4/127.0.0.1/tcp/40837/p2p/12D3KooWPjceQrSwdWXPyLLeABRXmuqt69Rg3sBYbU1Nft9HyQ6X \
|
||||
//! get \
|
||||
//! --name <name-for-others-to-find-your-file>
|
||||
//! ```
|
||||
//!
|
||||
//! Note: The client does not need to be directly connected to the providing
|
||||
//! peer, as long as both are connected to some node on the same DHT.
|
||||
#![doc = include_str!("../README.md")]
|
||||
|
||||
mod network;
|
||||
|
||||
use async_std::task::spawn;
|
||||
|
Reference in New Issue
Block a user