đź“–
[Deprecated] Launchpad Curriculum
  • README
  • About Launchpad
  • Launchpad Learning Resources
    • The Protocol Labs Network
      • What is the PL Network?
      • Teams in the PL Network
      • Protocol Labs Culture
      • Where We are Headed
      • Open Source Stewardship
      • Open Source Contribution
    • IPFS
      • IPFS Setup (Tutorial)
      • Mutable Content
      • IPFS Public DHT
      • Who Uses IPFS
      • How IPFS Works
      • Data Transfer
      • IPFS Subsystems & Architecture
      • The IPFS Gateways
      • The IPFS API (Tutorial)
      • IPFS Resources
    • IPLD
      • Content Addressing & CIDs
      • Graphs: Merkle DAGs
      • The IPLD Data Model
      • IPLD & IPFS
      • Codecs
      • IPLD Schemas
      • Paths & Selectors
      • Distributed Data Structures
      • The CAR Format
      • IPLD Resources
    • libp2p
      • Core Concepts
      • libp2p Connections and Users
      • Decentralized Messaging
      • Gossipsub
      • Distributed Networking Solutions
      • Nat Traversal and Hole Punching
      • libp2p Resources
    • Filecoin
      • How Filecoin Works
      • Filecoin Cryptoeconomics
      • The Filecoin Protocol
      • Drand
      • Progress & Future Work
      • Filecoin Resources
  • Other Resources
    • Pre-Requisites
      • Web3 & Protocol Labs
      • Building Web3
      • Web3 Tools
    • Protocol Labs Toolkits & SDKs
      • Textile
      • Ceramic
      • Fleek
      • Web3.Storage
      • Piñata
    • Built On IPFS and Filecoin
    • Additional Learning
Powered by GitBook
On this page
  • The libp2p Roadmap
  • Introduction to libp2p | David Dias
  • Why libp2p?
  • Objectives
  • Intro to libp2p | Encode Filecoin Club - Max Inden
  • Tutorials
  • Links
Edit on GitHub
  1. Launchpad Learning Resources

libp2p

The Networking Layer

PreviousIPLD ResourcesNextCore Concepts

Last updated 2 years ago

This Launchpad site is now deprecated. To see the newest information and learn more about IPFS, Filecoin, and everything else we will add, continue to our new curriculum page at .

libp2p is the networking & communication layer for IPFS. for resources and information.

Moving from a location-addressed system to a peer-to-peer, content addressed system presents a lot of challenges. The internet as it is, with firewalls and NATs, was designed to provide data (securely) for the traditional Web2 systems.

libp2p is a modular system of protocols, specifications and libraries that enable the development of peer-to-peer network applications. Because of the way libp2p is architected, a lot of the needs and considerations that the web2 network was built on no longer apply.

for all of the libraries of modules you can use and bundles for different use cases available in various languages.

The libp2p Roadmap

This is the stuff that moves libp2p from "a networking toolbox to build P2P applications" to the thing that fundamentally reshapes the architecture of the Internet; our dreams and aspirations, the North star we should always keep in sight; this is what motivates us and it's speaks intimately to our mission statement; the libp2p analogy of IPFS working on Mars.

Introduction to libp2p | David Dias

Why libp2p?

libp2p is a network framework that allows you to write decentralized peer-to-peer applications. Originally the networking protocol of IPFS, it has since been extracted to become its own first-class project.

Objectives

All distributed peer-to-peer networks have a set of challenges that are distinct from traditional networks. libp2p is a generalized toolkit so that developers can use plug-and-play networking with their distributed application.

A fundamental shift in distributed computing is that the “client/server” paradigm no longer holds up. Let’s take a look at what your home router does.

Every device in your home network has a private IP address. When you request data from a server, your router replaces your device’s private address with your home’s public IP address, and remembers which device to send the response to.

That works fine if all your devices are clients, but what about when a request from the outside world shows up at your router? It’s not a response to a request, it is a request, so the requestor thinks that you are a server. One of your devices is acting as a server, but your router doesn’t know which one. This is a problem called NAT traversal, and libp2p provides tools to help handle it.

libp2p also handles peer discovery and handshake protocols. In a world where clients act as servers too, there will inevitably be a variety of hardware, operating systems, and communication protocols between nodes. Encryption and security underpin Web3 design, and libp2p supports both unencrypted (e.g. TCP, UDP) and encrypted protocols (e.g. TLS, Noise) out of the box.

Intro to libp2p | Encode Filecoin Club - Max Inden

In this talk by Max Inden, learn about the purpose of libp2p, which networking protocols it supports, and some of the interesting projects being built with it.

Tutorials

Publish Subscribe (Pubsub) with IPFS & libp2p

In this tutorial video, you will see how you can use the publish-subscribe functionality (using the libp2p Gossipsub routing algorithm) with an IPFS node. Follow along to start an IPFS node with pubsub enabled, and send and recieve messages.

Resources:

Links

Building large scale peer-to-peer systems has presented many complex difficulties, and libp2p is a way to fix that. The libp2p projects makes it possible for a applications to operate in an , with , , and .

Read more about why libp2p in this

For those who are newer to the world of Filecoin, Web3, and storage verification, check out the . Tutorials you should complete include:

IPFS | | - IPLD | | - libp2p | | - Filecoin | |

peer-to-peer
interface that supports many Internet protocols
secure identities
peer routing
content discovery
Our long term roadmap
Node data dashboard
blog by Pierre Kreiger on parity.io
Protoschool tutorials
Introduction to libp2p
Blogging on the Decentralized Web
ResNetLab on Tour – Content Routing
Blog with Pubsub instructions
Other Pubsub Options
lipbp2p Docs – Publish/Subscribe
Docs
GitHub
Docs
GitHub
Docs
GitHub
Docs
GitHub
https://curriculum.pl-launchpad.io/
Visit the main website
See the Implementations and Bundles