shresthagrawal / learnp2p

https://learnp2p.org
https://jslibp2p-chat-tutorial.vercel.app
MIT License
26 stars 6 forks source link
js js-libp2p jslibp2p-chat libp2p tutorial workshop

Js Libp2p Chat Tutorial

Getting your hands dirty with libp2p!

What is this?

This is an interactive self-placed workshop. The aim of this workshop is to help the libp2p enthusiasts to get started with libp2p. Through this workshop you will be able to build a completely decentralized chat system using the open source framework js-libp2p.

This workshop currently only focuses on the node.js implementation of libp2p!

For whom is this workshop for?

Have you ever heard the word libp2p but were never able to wrap your head around it? Have you tried to understand what the heck is a modular-networking stack and then got deeper into other such terms such as dht, multiadrs, nat transversal, and every networking term.. and never came out? Have you tried to learn libp2p but got frustrated because instead of the awesome docs, you ended up reading the source code?

If Yes, this is the perfect place! If no, and you just accidentally entered this page, but you want to learn something so awesome that it has capability to revolutionize the web! this is the place for you!

The tutorial assumes that you have a basic programming knowledge and networking skills. You don't need to be a wizard of cryptography, or blockchain, or advance networking, or any other super complicated topic to use this.

How to use this?

The material is broken into chapters, it is highly recommended to proceed sequentially. Every chapter aims to explain a module of libp2p, and proceed with overall development of the chat system. Every chapter provides with the description, references, and some awesome tasks that you need to do in order apply what you learn.

It is totally normal to get stuck from time to time or to not understand what the material is attempting to explain. In those situations it helps a lot to discuss the problem in the gitter channel or create issue in the github repo. This also helps other users as they might also be facing a similar problem and also creating a issue improves the material itself.

Let's begin!

How to contribute

Acknowledgment