You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
'Getting started with libp2p': https://docs.libp2p.io/guides/
10
9
---
11
10
12
11
# libp2p
13
12
14
-
Libp2p, (short for “library peer-to-peer”) is a peer-to-peer (P2P) networking framework that enables the development of P2P applications. It consists of a collection of protocols, specifications, and libraries that facilitate P2P communication between network participants or, in other words, peers.
13
+
libp2p, (short for “library peer-to-peer”) is a peer-to-peer (P2P) networking framework that enables the development of P2P applications. It consists of a collection of protocols, specifications, and libraries that facilitate P2P communication between network participants or, in other words, peers.
15
14
16
15
## P2P basics
17
16
18
17
P2P networks are _decentralized_, meaning that participants communicate directly with one another on equal footing. More specifically:
19
18
20
19
- P2P networks do not require a privileged set of servers that behave differently from their clients, as in the predominant client-server model.
21
20
- No central server or authority controls the network.
22
-
21
+
23
22
24
23
P2P networks can take many forms, including file-sharing systems like BitTorrent, blockchain networks like Bitcoin and Ethereum, and decentralized communication standards like Matrix. These systems all have different challenges and tradeoffs,
25
24
but they share the goal of improving upon the traditional client-server networking model.
26
25
27
26
## Background of libp2p and IPFS
28
27
29
-
Libp2p was initially developed as the wire protocol for the IPFS project, but has since phased out into a broader networking stack that a wide range of other projects use as a networking layer. It provides a set of specifications that can be adapted to support various protocols, allowing developers to create libp2p applications that can operate in multiple runtimes and networking environments.
28
+
libp2p was initially developed as the wire protocol for the IPFS project, but has since phased out into a broader networking stack that a wide range of other projects use as a networking layer. It provides a set of specifications that can be adapted to support various protocols, allowing developers to create libp2p applications that can operate in multiple runtimes and networking environments.
30
29
31
30
Discovering and connecting with other peers is a key challenge in P2P networking. Before libp2p, each P2P application had to develop its own solution, leading to a lack of reusable, well-documented P2P protocols. The IPFS team looked at existing research and networking applications for inspiration, but found few code implementations that were usable and adaptable. Existing implementations had problems like:
32
31
@@ -36,16 +35,16 @@ Discovering and connecting with other peers is a key challenge in P2P networking
36
35
- No point of contact.
37
36
- Being closed source, deprecated, or lacked specifications.
38
37
- Unfriendly APIs.
39
-
- Tight coupling with specific use cases.
40
-
- Lack of upgradeability.
38
+
- Tight coupling with specific use cases.
39
+
- Lack of upgradeability.
41
40
42
41
As a result, developers often had to reinvent the wheel each time they needed P2P protocols rather than being able to reuse existing solutions.
43
42
44
-
Libp2p was designed to address these limitations.
43
+
libp2p was designed to address these limitations.
45
44
46
45
## Features
47
46
48
-
The features of Libp2p are listed below. For more information on each feature, click the link to navigate to the appropriate page in the [official Libp2p documentation](https://docs.libp2p.io).
47
+
The features of libp2p are listed below. For more information on each feature, click the link to navigate to the appropriate page in the [official libp2p documentation](https://docs.libp2p.io).
0 commit comments