Merge pull request #98 from zixuanzh/feature-breakdown
Adding feature breakdown to readme
This commit is contained in:
commit
f6c6ec2213
111
README.md
111
README.md
|
@ -28,9 +28,114 @@ pytest
|
||||||
```
|
```
|
||||||
Note that tests/libp2p/test_libp2p.py contains an end-to-end messaging test between two libp2p hosts, which is the bulk of our proof of concept.
|
Note that tests/libp2p/test_libp2p.py contains an end-to-end messaging test between two libp2p hosts, which is the bulk of our proof of concept.
|
||||||
|
|
||||||
# Explanation of Basic Two Node Communication
|
## Feature Breakdown
|
||||||
|
py-libp2p aims for conformity with [the standard libp2p modules](https://github.com/libp2p/libp2p/blob/master/REQUIREMENTS.md#libp2p-modules-implementations). Below is a breakdown of the modules we have developed, are developing, and may develop in the future.
|
||||||
|
|
||||||
## Core Concepts
|
> Legend: :green_apple: Done :lemon: In Progress :tomato: Missing :chestnut: Not planned
|
||||||
|
|
||||||
|
| libp2p Node | Status |
|
||||||
|
| -------------------------------------------- | :-----------: |
|
||||||
|
| **`libp2p`** | :green_apple: |
|
||||||
|
|
||||||
|
|
||||||
|
| Identify Protocol | Status |
|
||||||
|
| -------------------------------------------- | :-----------: |
|
||||||
|
| **`Identify`** | :tomato: |
|
||||||
|
|
||||||
|
|
||||||
|
| Transport Protocols | Status |
|
||||||
|
| -------------------------------------------- | :-----------: |
|
||||||
|
| **`TCP`** | :lemon: tests |
|
||||||
|
| **`UDP`** | :tomato: |
|
||||||
|
| **`WebSockets`** | :tomato: |
|
||||||
|
| **`UTP`** | :tomato: |
|
||||||
|
| **`WebRTC`** | :chestnut: |
|
||||||
|
| **`SCTP`** | :chestnut: |
|
||||||
|
| **`Tor`** | :chestnut: |
|
||||||
|
| **`i2p`** | :chestnut: |
|
||||||
|
| **`cjdns`** | :chestnut: |
|
||||||
|
| **`Bluetooth LE`** | :chestnut: |
|
||||||
|
| **`Audio TP`** | :chestnut: |
|
||||||
|
| **`Zerotier`** | :chestnut: |
|
||||||
|
| **`QUIC`** | :chestnut: |
|
||||||
|
|
||||||
|
|
||||||
|
| Stream Muxers | Status |
|
||||||
|
| -------------------------------------------- | :-----------: |
|
||||||
|
| **`multiplex`** | :lemon: tests |
|
||||||
|
| **`yamux`** | :tomato: |
|
||||||
|
| **`benchmarks`** | :chestnut: |
|
||||||
|
| **`muxado`** | :chestnut: |
|
||||||
|
| **`spdystream`** | :chestnut: |
|
||||||
|
| **`spdy`** | :chestnut: |
|
||||||
|
| **`http2`** | :chestnut: |
|
||||||
|
| **`QUIC`** | :chestnut: |
|
||||||
|
|
||||||
|
|
||||||
|
| Protocol Muxers | Status |
|
||||||
|
| -------------------------------------------- | :-----------: |
|
||||||
|
| **`multiselect`** | :green_apple: |
|
||||||
|
|
||||||
|
|
||||||
|
| Switch (Swarm) | Status |
|
||||||
|
| -------------------------------------------- | :-----------: |
|
||||||
|
| **`Switch`** | :lemon: tests |
|
||||||
|
| **`Dialer stack`** | :chestnut: |
|
||||||
|
|
||||||
|
|
||||||
|
| Peer Discovery | Status |
|
||||||
|
| -------------------------------------------- | :-----------: |
|
||||||
|
| **`bootstrap list`** | :green_apple: |
|
||||||
|
| **`Kademlia DHT`** | :tomato: |
|
||||||
|
| **`mDNS`** | :tomato: |
|
||||||
|
| **`PEX`** | :chestnut: |
|
||||||
|
| **`DNS`** | :chestnut: |
|
||||||
|
|
||||||
|
|
||||||
|
| Content Routing | Status |
|
||||||
|
| -------------------------------------------- | :-----------: |
|
||||||
|
| **`Kademlia DHT`** | :tomato: |
|
||||||
|
| **`floodsub`** | :tomato: |
|
||||||
|
| **`gossipsub`** | :tomato: |
|
||||||
|
| **`PHT`** | :chestnut: |
|
||||||
|
|
||||||
|
|
||||||
|
| Peer Routing | Status |
|
||||||
|
| -------------------------------------------- | :-----------: |
|
||||||
|
| **`Kademlia DHT`** | :tomato: |
|
||||||
|
| **`floodsub`** | :tomato: |
|
||||||
|
| **`gossipsub`** | :tomato: |
|
||||||
|
| **`PHT`** | :chestnut: |
|
||||||
|
|
||||||
|
|
||||||
|
| NAT Traversal | Status |
|
||||||
|
| -------------------------------------------- | :-----------: |
|
||||||
|
| **`nat-pmp`** | :chestnut: |
|
||||||
|
| **`upnp`** | :chestnut: |
|
||||||
|
| **`ext addr discovery`** | :chestnut: |
|
||||||
|
| **`STUN-like`** | :chestnut: |
|
||||||
|
| **`line-switch relay`** | :chestnut: |
|
||||||
|
| **`pkt-switch relay`** | :chestnut: |
|
||||||
|
|
||||||
|
|
||||||
|
| Exchange | Status |
|
||||||
|
| -------------------------------------------- | :-----------: |
|
||||||
|
| **`HTTP`** | :chestnut: |
|
||||||
|
| **`Bitswap`** | :chestnut: |
|
||||||
|
| **`Bittorrent`** | :chestnut: |
|
||||||
|
|
||||||
|
|
||||||
|
| Consensus | Status |
|
||||||
|
| -------------------------------------------- | :-----------: |
|
||||||
|
| **`Paxos`** | :chestnut: |
|
||||||
|
| **`Raft`** | :chestnut: |
|
||||||
|
| **`PBTF`** | :chestnut: |
|
||||||
|
| **`Nakamoto`** | :chestnut: |
|
||||||
|
|
||||||
|
|
||||||
|
## Explanation of Basic Two Node Communication
|
||||||
|
|
||||||
|
### Core Concepts
|
||||||
|
|
||||||
_(non-normative, useful for team notes, not a reference)_
|
_(non-normative, useful for team notes, not a reference)_
|
||||||
|
|
||||||
|
@ -44,7 +149,7 @@ Several components of the libp2p stack take part when establishing a connection
|
||||||
5. **Secure channel**: optionally establishes a secure, encrypted, and authenticated channel over the _Connection_.
|
5. **Secure channel**: optionally establishes a secure, encrypted, and authenticated channel over the _Connection_.
|
||||||
5. **Upgrader**: a component that takes a raw layer 3 connection returned by the _Transport_, and performs the security and multiplexing negotiation to set up a secure, multiplexed channel on top of which _Streams_ can be opened.
|
5. **Upgrader**: a component that takes a raw layer 3 connection returned by the _Transport_, and performs the security and multiplexing negotiation to set up a secure, multiplexed channel on top of which _Streams_ can be opened.
|
||||||
|
|
||||||
## Communication between two hosts X and Y
|
### Communication between two hosts X and Y
|
||||||
|
|
||||||
_(non-normative, useful for team notes, not a reference)_
|
_(non-normative, useful for team notes, not a reference)_
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user