Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs/experimental-features.md: typo #7062

Merged
merged 3 commits into from
Mar 30, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 26 additions & 35 deletions docs/experimental-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ removed.

Subscribe to https://github.com/ipfs/go-ipfs/issues/3397 to get updates.

When you add a new experimental feature to go-ipfs, or change an experimental
When you add a new experimental feature to go-ipfs or change an experimental
feature, you MUST please make a PR updating this document, and link the PR in
the above issue.

Expand Down Expand Up @@ -53,7 +53,7 @@ run your daemon with the `--enable-pubsub-experiment` flag. Then use the

Gossipsub is a new, experimental routing protocol for pubsub that
should waste less bandwidth than floodsub, the current pubsub
protocol. It's backwards compatible with floodsub so enabling this
RubenKelevra marked this conversation as resolved.
Show resolved Hide resolved
protocol. It's backward compatible with floodsub so enabling this
feature shouldn't break compatibility with existing IPFS nodes.

You can enable gossipsub via configuration:
Expand All @@ -76,7 +76,7 @@ signed) by running:

### Road to being a real feature
- [ ] Needs more people to use and report on how well it works
- [ ] Needs authenticated modes to be implemented
- [ ] Needs authenticating modes to be implemented
- [ ] needs performance analyses to be done

---
Expand Down Expand Up @@ -168,7 +168,7 @@ filestore instead of copying the files into your local IPFS repo.
---

## ipfs urlstore
Allows ipfs to retrieve blocks contents via a url instead of storing it in the datastore
Allows ipfs to retrieve blocks contents via a URL instead of storing it in the datastore

### State
experimental.
Expand All @@ -195,7 +195,7 @@ And then add a file at a specific URL using `ipfs urlstore add <url>`

## Private Networks

Allows ipfs to only connect to other peers who have a shared secret key.
It allows ipfs to only connect to other peers who have a shared secret key.

### State
Experimental
Expand Down Expand Up @@ -249,7 +249,7 @@ configured, the daemon will fail to start.
## ipfs p2p

Allows tunneling of TCP connections through Libp2p streams. If you've ever used
port forwarding with SSH (the `-L` option in openssh), this feature is quite
port forwarding with SSH (the `-L` option in OpenSSH), this feature is quite
similar.

### State
Expand All @@ -262,7 +262,7 @@ master, 0.4.10

### How to enable

The `p2p` command needs to be enabled in config:
The `p2p` command needs to be enabled in the config:

```sh
> ipfs config --json Experimental.Libp2pStreamMounting true
Expand Down Expand Up @@ -354,13 +354,13 @@ with `ssh [user]@127.0.0.1 -p 2222`.
### Road to being a real feature
- [ ] Needs more people to use and report on how well it works / fits use cases
- [ ] More documentation
- [ ] Support other protocols (e.g, unix domain sockets, websockets, etc.)
- [ ] Support other protocols (e.g, Unix domain sockets, WebSockets, etc.)

---

## p2p http proxy

Allows proxying of HTTP requests over p2p streams. This allows serving any standard http app over p2p streams.
Allows proxying of HTTP requests over p2p streams. This allows serving any standard HTTP app over p2p streams.

### State

Expand All @@ -372,13 +372,13 @@ master, 0.4.19

### How to enable

The `p2p` command needs to be enabled in config:
The `p2p` command needs to be enabled in the config:

```sh
> ipfs config --json Experimental.Libp2pStreamMounting true
```

On the client, the p2p http proxy needs to be enabled in the config:
On the client, the p2p HTTP proxy needs to be enabled in the config:

```sh
> ipfs config --json Experimental.P2pHttpProxy true
Expand Down Expand Up @@ -427,10 +427,10 @@ the remote machine (which needs to be a http server!) with path `$FORWARDED_PATH
> curl http://localhost:8080/p2p/$SERVER_ID/http/
```

You should now see the resulting http response: IPFS rocks!
You should now see the resulting HTTP response: IPFS rocks!

### Custom protocol names
We also support use of protocol names of the form /x/$NAME/http where $NAME doesn't contain any "/"'s
We also support the use of protocol names of the form /x/$NAME/http where $NAME doesn't contain any "/"'s

### Road to being a real feature
- [ ] Needs p2p streams to graduate from experiments
Expand All @@ -453,7 +453,7 @@ master, 0.4.11
### How to enable

The relay transport is enabled by default, which allows peers to dial through
relay and listens for incoming relay connections. The transport can be disabled
a relay and listens for incoming relay connections. The transport can be disabled
by setting `Swarm.DisableRelay = true` in the configuration.

By default, peers don't act as intermediate nodes (relays). This can be enabled
Expand All @@ -463,7 +463,7 @@ already online node would have to be restarted.

### Basic Usage:

In order to connect peers QmA and QmB through a relay node QmRelay:
To connect peers QmA and QmB through a relay node QmRelay:

- Both peers should connect to the relay:
`ipfs swarm connect /transport/address/p2p/QmRelay`
Expand All @@ -483,8 +483,7 @@ Peers can see their (unspecific) relay address in the output of
- [ ] Advertise relay addresses to the DHT for NATed or otherwise unreachable
peers.
- [ ] Active relay discovery for specific relay address advertisement. We would
like advertised relay addresses to designate specific relays for efficient
dialing.
like advertised relay addresses to designate specific relays for efficient dialing.
- [ ] Dialing priorities for relay addresses; arguably, relay addresses should
have lower priority than direct dials.

Expand All @@ -496,7 +495,7 @@ Peers can see their (unspecific) relay address in the output of
### State
Experimental

Plugins allow to add functionality without the need to recompile the daemon.
Plugins allow adding functionality without the need to recompile the daemon.

### Basic Usage:

Expand Down Expand Up @@ -545,7 +544,7 @@ You can read more in the [datastore](./datastores.md#badgerds) documentation.
### State
Experimental

Allows to create directories with unlimited number of entries - currently
Allows creating directories with an unlimited number of entries - currently
size of unixfs directories is limited by the maximum block size

### Basic Usage:
Expand Down Expand Up @@ -577,14 +576,9 @@ When it is enabled:
- IPNS publishers push records to a name-specific pubsub topic,
in addition to publishing to the DHT.
- IPNS resolvers subscribe to the name-specific topic on first
resolution and receive subsequently published records through pubsub
in real time. This makes subsequent resolutions instant, as they
are resolved through the local cache. Note that the initial
resolution still goes through the DHT, as there is no message
history in pubsub.
resolution and receive subsequently published records through pubsub in real time. This makes subsequent resolutions instant, as they are resolved through the local cache. Note that the initial resolution still goes through the DHT, as there is no message history in pubsub.

Both the publisher and the resolver nodes need to have the feature enabled for it
to work effectively.
Both the publisher and the resolver nodes need to have the feature enabled for it to work effectively.

### How to enable

Expand Down Expand Up @@ -617,14 +611,14 @@ Modify your ipfs config:
ipfs config --json Experimental.QUIC true
```

For listening on a QUIC address, add it the swarm addresses, e.g. `/ip4/0.0.0.0/udp/4001/quic`.
For listening on a QUIC address, add it to the swarm addresses, e.g. `/ip4/0.0.0.0/udp/4001/quic`.


### Road to being a real feature

- [ ] The IETF QUIC specification needs to be finalised.
- [ ] The IETF QUIC specification needs to be finalized.
RubenKelevra marked this conversation as resolved.
Show resolved Hide resolved
- [ ] Make sure QUIC connections work reliably
- [ ] Make sure QUIC connection offer equal or better performance than TCP connections on real world networks
- [ ] Make sure QUIC connection offer equal or better performance than TCP connections on real-world networks
- [ ] Finalize libp2p-TLS handshake spec.


Expand Down Expand Up @@ -687,9 +681,9 @@ ipfs config --json Experimental.StrategicProviding true

### Road to being a real feature

- [ ] needs real world testing
- [ ] needs real-world testing
- [ ] needs adoption
- [ ] needs to support all providing features
- [ ] needs to support all provider subsystem features
- [X] provide nothing
- [ ] provide roots
- [ ] provide all
Expand Down Expand Up @@ -717,7 +711,4 @@ ipfs config --json Experimental.GraphsyncEnabled true

### Road to being a real feature

- [ ] We need to confirm that it can't be used to DoS a node. The server-side
logic for GraphSync is quite complex and, if we're not careful, the server
might end up performing unbounded work when responding to a malicious
request.
- [ ] We need to confirm that it can't be used to DoS a node. The server-side logic for GraphSync is quite complex and, if we're not careful, the server might end up performing unbounded work when responding to a malicious request.