Knowledge is Power

View on GitHub


libp2p is a modular framework and protocol suite for developing peer-to-peer applications. Originally part of the IPFS project, libp2p has evolved to meet the needs of a growing community of developers and users, and has recently been incorporated into the networking spec for Ethereum 2.0.

There are many implementations of libp2p, with go-libp2p being the oldest and most “feature complete”. Javascripters can use js-libp2p in Node or browsers, and rustaceans can dig into rust-libp2p.

Other language implementations are in developmement, but if your favorite language isn’t quite there yet, the libp2p daemon allows you to run “libp2p as a service” in an external process. Check out the supported language bindings to see if there’s already a binding for your language.


Prizes Offered

1. 2.

Getting Started

Some background info that may be helpful:

Need Help

The libp2p docs site is a work in progress, but has some useful info. The concepts section is especially helpful if you’re new to libp2p. There are also quick tutorials for go-libp2 and js-libp2p.

Code examples:

If you’re working with go, be sure to check out the examples and docs for IPFS Camp 2019! There’s some great material there, including examples for pubsub and writing custom protocols.

Detailed specs are available in the specs repository for most core libp2p wire protocols and abstractions.

Check out the libp2p discussion forums to ask questions & find out about new developments in libp2p. Tagging Stack Overflow questions with libp2p is also a good way to get them seen by people in the community. The #libp2p IRC channel on freenode can also be a good venue for a quick question.