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.
|
||||
|
||||
# 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)_
|
||||
|
||||
|
@ -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. **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)_
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user