Skip to content

Latest commit

 

History

History
94 lines (60 loc) · 5.8 KB

libp2p-resources.md

File metadata and controls

94 lines (60 loc) · 5.8 KB
title description draft menu weight category level aliases
Quiz & Resources
Explore beyond the curriculum
false
curriculum
parent identifier
curriculum-libp2p
libp2p-resources
370
lecture
shallow
deep
/curriculum/libp2p/decentralized-messaging/

Libp2p Quiz

Take the libp2p Quiz after covering the pre-requisite content to gauge your understanding.

{{< embed src="https://docs.google.com/forms/d/e/1FAIpQLSfAEZCeioMqvWe16zzH8du8ygi7rcgfqDbVHt8MVQbRq6iO4A/viewform?usp=sf_link" width="100%" height="900px" >}}

Main Resources

Github Discussions

Tutorials

If you want to dive in, check out our collection of tutorials, which will help guide you through your explorations of libp2p.

You can also follow this Getting Started with Rust and libp2p tutorial to build a small ping clone, sending a ping to a peer, expecting a pong as a response.

Decentralized Messaging?

Intro to Decentralized Messaging | ETHGlobal – Jacob Heun

{{< youtube 69h1zhIdCN0 >}}

Examples

If you want to get a feel for what's possible with libp2p, or just want to see some idiomatic usage, check out the examples. Each libp2p implementation maintains a set of working example projects that can illustrate key concepts and use cases. (js examples, rust examples, python examples)

Reference

Specifications & Planning

While libp2p has several implementations, it is fundamentally a set of protocols for peer identity, discover, routing, transport and more.

See the specifications section for details.

Implementations

At the core of libp2p is a set of specifications, which together form the definition for what libp2p is in the abstract and what makes a "correct" libp2p implementation. Today, implementations of libp2p exist in several languages, with varying degrees of completeness. The most complete implementations are in Go, JavaScript, and Rust.

In addition to the implementations above, the libp2p community is actively working on implementations in python and the JVM via Kotlin. Please check the project pages for each implementation to see its status and current state of completeness.

Community

Get in touch with other members of the libp2p community who are building tools and applications with libp2p! You can ask questions, discuss new ideas, or get support for problems at discuss.ipfs.io, but you can also hop on IRC for a quick chat.

See the other links in the community section for more information about meetings, events, apps people are building, and more.

Information about contributing to libp2p and about other software projects in the community are also hosted here.

Get Involved

libp2p is an open-source community project. While Protocol Labs is able to sponsor some of the work around it, much of the design, code, and effort is contributed by volunteers and community members like you. If you’re interested in helping improve libp2p, check the contributing guide to get started.

If you are diving in to contribute new code, make sure you check both the contribution guidelines and the style guide for your language (Go, JavaScript).

Related Projects

libp2p began as part of the IPFS project, and is still an essential component. As such, libp2p composes well with the abstractions and tools provided by other projects in the IPFS "family". Check their individual sites for specific information and references:

  • IPFS is the InterPlanetary File System, which uses libp2p as its networking layer.
  • Multiformats is a variety of self-describing data formats.
  • IPLD is a set of tools for describing links between content-addressed data, like IPFS files, Git commits, or Ethereum blocks.
  • The Permissive License Stack is a licensing strategy for software development that embraces open-source values.