
Discover the basics and challenges of peer-to-peer systems, and learn to build real-world P2P apps with a Rust toolkit through a step-by-step guided approach.
Explore the basics of peer-to-peer networking and contrast it with traditional client-server models, highlighting decentralization, data synchronization with consensus strategies, and connectivity behind firewalls.
Develop a two-node chat using a Rust P2P swarm, illustrating transport and behavior, JSON request-response messaging, Tokio TCP, multi addresses, and keep-alive ping.
Explore peer discovery and routing in a p2p chat, using mdns for local dns records and dht for global peer routing, enabling decentralized, nearby connections.
Explore how Kademlia DHT enables global peer discovery in a P2P chat app through bootstrap peers, routing tables, identify exchanges, and content provider routing.
Enhance connectivity in peer-to-peer apps by using NAT with private networks, auto net probing, and circuit relays, plus hole punching to reach peers behind NAT.
Leverage gossip sub to scale peer-to-peer chat with a decentralized publish-subscribe model, where topics, subscriptions, and signed messages propagate quickly across connected peers.
Build a fully decentralized peer-to-peer file sharing app with Rust, using chunked files, bootstrap peers, and verifiable downloads to ensure integrity without central servers.
Set up a rust-based distributed file sharing skeleton with a p2p server, tokio runtime, and graceful shutdown using a cancel token and join set for future file publishing and downloading.
Develop a Rust libp2p swarm setup by implementing a swarm builder with an existing ed25519 identity, plus a serializable P2P service config to manage peer setup and errors.
Build a rust-based p2p service by adding quick transport, listening on tcp and udp, and leveraging kademlia with gossip sub and mdns discovery.
Set up a local gRPC server for publishing files in a Rust P2P app. Define a publish service with protobuf and generate code using tonic build.
Publish and process files in a distributed, peer-to-peer Rust app by reading file metadata, chunking into megabyte pieces, and broadcasting public availability via gossip and DHT.
We implement Merkle trees to validate file chunks via a root hash and per-chunk proofs, using sha256 leaves and the rs_merkle crate in Rust for streaming verification through DHT.
Publish processed files on a Kademlia DHT by saving a Merkle-based processing result to the filesystem and triggering publication via a gRPC to P2P channel.
Implement a rocksdb store for published files, saving original file name, chunks directory, and public flag with merkle root and chunk metadata to enable p2p metadata and chunk retrieval.
Describes a metadata download protocol for a Rust p2p app: publish files, split into chunks, publish records in kademlia, provide keys, and fetch metadata chunk by chunk via cbor.
Build a file download workflow in Rust using gRPC and peer-to-peer with Kademlia, metadata, and a download request.
Configure a Rust p2p app with clap cli: define a cli struct, derive parser, and expose base path and gRPC port with env override support.
Load metadata from RocksDB and fetch all published files, then start providing them to the Kademlia DHT on startup.
Implement file download workers in a Rust p2p app by processing pending downloads, spawning workers, and distributing chunk requests through a bounded async channel with Merkle proofs.
Explains building a file download service in a Rust P2P app, including saving download metadata in RocksDB column families, managing pending downloads, Merkle proofs, and parallel chunk downloads.
Continue implementing the file download service by spawning worker tasks, tracking downloaded chunks in rocksdb, and handling chunk requests via p2p.
Implement a file chunk download workflow in a Rust p2p app, enabling metadata requests, kademlia provider queries, and publishing chunks with CBOR encoding and Merkle proofs.
Explore implementing a file chunk download protocol in a Rust-based p2p app, including downloading and saving chunks, error handling, memory leak prevention, and Merkle proof validation.
this lecture completes the file chunk download flow in a rust p2p app: request chunks, verify with merkle proofs, assemble the final file, and publish it on the dht.
The course demonstrates broadcasting publicly available files across a rust-based p2p network by periodically publishing the public file list via gossip sub and storing metadata in rocksdb.
Review the dfs p2p application architecture in Rust, covering main components p2p, grpc, file download, protobuf, tokio, and merkle-based verification.
Have you ever thinking about how torrent works, how blockchain systems can stay in sync together across the globe or how to create decentralized applications in general?
Having a little-bit of Rust knowledge?
If yes, then this course is 100% for you!
This course is a very good starting point for anyone who may want to start develop a blockchain or any kind of p2p applications.
In this course, first we are going over the basics of peer to peer development that gives you a relatively good understanding of how these kind of applications looks like. While learning, of course we do some coding as well, to get familiar with LibP2P's Rust based implementation!
Then in the last big section we will go through a full real world application development cycle (not making it 100% production ready, but works fine) from scratch!
There we check all the aspects of a real P2P application, including local database, networking, verification of data coming from other peers and so on!
While this course expects some basic Rust knowledge, during the course it can be get easily as there are not much expert topic is touched regarding Rust.
So overall, if you would like to deepen your understanding of P2P application development and add some cool new skills to your skillset, just take this course! :)