Adding feature breakdown to readme

This commit is contained in:
Robert Zajac
2018-12-22 01:19:24 -05:00
parent 2e9b647563
commit 84e09ee243

View File

@ -28,9 +28,67 @@ 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`** | :green_apple: |
| **`UDP`** | :tomato: |
| **`WebSockets`** | :tomato: |
| **`UTP`** | :tomato: |
| Stream Muxers | Status |
| -------------------------------------------- | :-----------: |
| **`multiplex`** | :green_apple: |
| **`yamux`** | :tomato: |
| Protocol Muxers | Status |
| -------------------------------------------- | :-----------: |
| **`multiselect`** | :green_apple: |
| Switch (Swarm) | Status |
| -------------------------------------------- | :-----------: |
| **`Switch`** | :green_apple: |
| Peer Discovery | Status |
| -------------------------------------------- | :-----------: |
| **`bootstrap list`** | :green_apple: |
| **`Kademlia DHT`** | :tomato: |
| **`mDNS`** | :tomato: |
| Content Routing | Status |
| -------------------------------------------- | :-----------: |
| **`Kademlia DHT`** | :tomato: |
| **`floodsub`** | :tomato: |
| **`gossipsub`** | :tomato: |
| Peer Routing | Status |
| -------------------------------------------- | :-----------: |
| **`Kademlia DHT`** | :tomato: |
## 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 +102,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)_