mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-21 10:27:46 +08:00
feat: update experimental documentations for 0.5.0 release
Mostly: 1. Remove old experiments. 2. Update reasons for features being experimental. 3. Comment on experiments that will be enabled in the near future.
This commit is contained in:
parent
6d7d3ef30e
commit
4c663bcf24
@ -38,7 +38,7 @@ the above issue.
|
||||
|
||||
### State
|
||||
|
||||
experimental, default-disabled.
|
||||
Candidate, disabled by default but will be enabled by default in 0.6.0.
|
||||
|
||||
### In Version
|
||||
|
||||
@ -79,75 +79,40 @@ signed) by running:
|
||||
- [ ] Needs authenticating modes to be implemented
|
||||
- [ ] needs performance analyses to be done
|
||||
|
||||
---
|
||||
## Raw Leaves for unixfs files
|
||||
|
||||
## Client mode DHT routing
|
||||
|
||||
Allows the dht to be run in a mode that doesn't serve requests to the network,
|
||||
saving bandwidth.
|
||||
Allows files to be added with no formatting in the leaf nodes of the graph.
|
||||
|
||||
### State
|
||||
stable
|
||||
|
||||
Stable but not used by default.
|
||||
|
||||
### In Version
|
||||
|
||||
0.5.0
|
||||
|
||||
### How to enable
|
||||
|
||||
run your daemon with the `--routing=dhtclient` flag.
|
||||
|
||||
---
|
||||
|
||||
## go-multiplex stream muxer
|
||||
Adds support for using the go-multiplex stream muxer alongside (or instead of)
|
||||
yamux and spdy. This multiplexer is far simpler, and uses less memory and
|
||||
bandwidth than the others, but is lacking on congestion control and backpressure
|
||||
logic. It is available to try out and experiment with.
|
||||
|
||||
### State
|
||||
Stable
|
||||
|
||||
### In Version
|
||||
0.4.5
|
||||
|
||||
### How to enable
|
||||
|
||||
To make it the default stream muxer, set the environment variable
|
||||
`LIBP2P_MUX_PREFS` as follows:
|
||||
```
|
||||
export LIBP2P_MUX_PREFS="/mplex/6.7.0 /yamux/1.0.0 /spdy/3.1.0"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Raw Leaves for unixfs files
|
||||
Allows files to be added with no formatting in the leaf nodes of the graph.
|
||||
|
||||
### State
|
||||
experimental.
|
||||
|
||||
### In Version
|
||||
master, 0.4.5
|
||||
|
||||
### How to enable
|
||||
Use `--raw-leaves` flag when calling `ipfs add`.
|
||||
Use `--raw-leaves` flag when calling `ipfs add`. This will save some space when adding files.
|
||||
|
||||
### Road to being a real feature
|
||||
- [ ] Needs more people to use and report on how well it works.
|
||||
|
||||
---
|
||||
Enabling this feature _by default_ will change the CIDs (hashes) of all newly imported files and will prevent newly imported files from deduplicating against previously imported files. While we do intend on enabling this by default, we plan on doing so once we have a large batch of "hash-changing" features we can enable all at once.
|
||||
|
||||
## ipfs filestore
|
||||
|
||||
Allows files to be added without duplicating the space they take up on disk.
|
||||
|
||||
### State
|
||||
experimental.
|
||||
|
||||
Experimental.
|
||||
|
||||
### In Version
|
||||
master, 0.4.7
|
||||
|
||||
0.4.7
|
||||
|
||||
### How to enable
|
||||
|
||||
Modify your ipfs config:
|
||||
```
|
||||
ipfs config --json Experimental.FilestoreEnabled true
|
||||
@ -159,23 +124,26 @@ Finally, when adding files with ipfs add, pass the --nocopy flag to use the
|
||||
filestore instead of copying the files into your local IPFS repo.
|
||||
|
||||
### Road to being a real feature
|
||||
|
||||
- [ ] Needs more people to use and report on how well it works.
|
||||
- [ ] Need to address error states and failure conditions
|
||||
- [ ] Need to write docs on usage, advantages, disadvantages
|
||||
- [ ] Need to merge utility commands to aid in maintenance and repair of filestore
|
||||
|
||||
---
|
||||
|
||||
## ipfs urlstore
|
||||
|
||||
Allows ipfs to retrieve blocks contents via a URL instead of storing it in the datastore
|
||||
|
||||
### State
|
||||
experimental.
|
||||
|
||||
Experimental.
|
||||
|
||||
### In Version
|
||||
master, v0.4.17
|
||||
|
||||
v0.4.17
|
||||
|
||||
### How to enable
|
||||
|
||||
Modify your ipfs config:
|
||||
```
|
||||
ipfs config --json Experimental.UrlstoreEnabled true
|
||||
@ -190,19 +158,20 @@ And then add a file at a specific URL using `ipfs urlstore add <url>`
|
||||
- [ ] Need to implement caching
|
||||
- [ ] Need to add metrics to monitor performance
|
||||
|
||||
---
|
||||
|
||||
## Private Networks
|
||||
|
||||
It allows ipfs to only connect to other peers who have a shared secret key.
|
||||
|
||||
### State
|
||||
Experimental
|
||||
|
||||
Stable but not quite ready for prime-time.
|
||||
|
||||
### In Version
|
||||
master, 0.4.7
|
||||
|
||||
0.4.7
|
||||
|
||||
### How to enable
|
||||
|
||||
Generate a pre-shared-key using [ipfs-swarm-key-gen](https://github.com/Kubuxu/go-ipfs-swarm-key-gen)):
|
||||
```
|
||||
go get github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen
|
||||
@ -240,10 +209,10 @@ variable to `1` to force the usage of private networks. If no private network is
|
||||
configured, the daemon will fail to start.
|
||||
|
||||
### Road to being a real feature
|
||||
- [ ] Needs more people to use and report on how well it works
|
||||
- [ ] More documentation
|
||||
|
||||
---
|
||||
- [x] Needs more people to use and report on how well it works
|
||||
- [ ] More documentation
|
||||
- [ ] Needs better tooling/UX.
|
||||
|
||||
## ipfs p2p
|
||||
|
||||
@ -253,11 +222,11 @@ similar.
|
||||
|
||||
### State
|
||||
|
||||
Experimental
|
||||
Experimental, will be stabilized in 0.6.0
|
||||
|
||||
### In Version
|
||||
|
||||
master, 0.4.10
|
||||
0.4.10
|
||||
|
||||
### How to enable
|
||||
|
||||
@ -351,11 +320,8 @@ 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.)
|
||||
|
||||
---
|
||||
- [ ] More documentation
|
||||
|
||||
## p2p http proxy
|
||||
|
||||
@ -367,7 +333,7 @@ Experimental
|
||||
|
||||
### In Version
|
||||
|
||||
master, 0.4.19
|
||||
0.4.19
|
||||
|
||||
### How to enable
|
||||
|
||||
@ -429,62 +395,15 @@ the remote machine (which needs to be a http server!) with path `$FORWARDED_PATH
|
||||
You should now see the resulting HTTP response: IPFS rocks!
|
||||
|
||||
### Custom protocol names
|
||||
|
||||
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
|
||||
- [ ] Needs more people to use and report on how well it works / fits use cases
|
||||
- [ ] More documentation
|
||||
|
||||
---
|
||||
|
||||
## Circuit Relay
|
||||
|
||||
Allows peers to connect through an intermediate relay node when there
|
||||
is no direct connectivity.
|
||||
|
||||
### State
|
||||
Experimental
|
||||
|
||||
### In Version
|
||||
master, 0.4.11
|
||||
|
||||
### How to enable
|
||||
|
||||
The relay transport is enabled by default, which allows peers to dial through
|
||||
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
|
||||
by setting `Swarm.EnableRelayHop = true` in the configuration. Note that the
|
||||
option needs to be set before online services are started to have an effect; an
|
||||
already online node would have to be restarted.
|
||||
|
||||
### Basic Usage:
|
||||
|
||||
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`
|
||||
- Peer QmA can then connect to peer QmB using the relay:
|
||||
`ipfs swarm connect /p2p/QmRelay/p2p-circuit/p2p/QmB`
|
||||
|
||||
Peers can also connect with an unspecific relay address, which will
|
||||
try to dial through known relays:
|
||||
`ipfs swarm connect /p2p-circuit/p2p/QmB`
|
||||
|
||||
Peers can see their (unspecific) relay address in the output of
|
||||
`ipfs swarm addrs listen`
|
||||
|
||||
### Road to being a real feature
|
||||
|
||||
- [ ] Needs more people to use it and report on how well it works.
|
||||
- [ ] 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.
|
||||
- [ ] Dialing priorities for relay addresses; arguably, relay addresses should
|
||||
have lower priority than direct dials.
|
||||
- [ ] Need better integration with the subdomain gateway feature.
|
||||
|
||||
## Plugins
|
||||
|
||||
@ -502,41 +421,11 @@ See [Plugin docs](./plugins.md)
|
||||
|
||||
### Road to being a real feature
|
||||
|
||||
- [ ] Better support for platforms other than Linux
|
||||
- [ ] More plugins and plugin types
|
||||
- [x] More plugins and plugin types
|
||||
- [ ] A way to reliably build and distribute plugins.
|
||||
- [ ] Better support for platforms other than Linux & MacOS
|
||||
- [ ] Feedback on stability
|
||||
|
||||
---
|
||||
|
||||
## Badger datastore
|
||||
|
||||
### In Version
|
||||
|
||||
0.4.11
|
||||
|
||||
Badger-ds is new datastore implementation based on
|
||||
https://github.com/dgraph-io/badger.
|
||||
|
||||
|
||||
### Basic Usage
|
||||
|
||||
```
|
||||
$ ipfs init --profile=badgerds
|
||||
```
|
||||
or install https://github.com/ipfs/ipfs-ds-convert/ and
|
||||
```
|
||||
[BACKUP ~/.ipfs]
|
||||
$ ipfs config profile apply badgerds
|
||||
$ ipfs-ds-convert convert
|
||||
```
|
||||
|
||||
You can read more in the [datastore](./datastores.md#badgerds) documentation.
|
||||
|
||||
### Road to being a real feature
|
||||
|
||||
- [ ] Needs more testing
|
||||
- [ ] Make sure there are no unknown major problems
|
||||
|
||||
## Directory Sharding / HAMT
|
||||
|
||||
### In Version
|
||||
@ -562,8 +451,6 @@ ipfs config --json Experimental.ShardingEnabled true
|
||||
- [ ] Make sure that objects that don't have to be sharded aren't
|
||||
- [ ] Generalize sharding and define a new layer between IPLD and IPFS
|
||||
|
||||
---
|
||||
|
||||
## IPNS pubsub
|
||||
|
||||
### In Version
|
||||
@ -595,8 +482,6 @@ run your daemon with the `--enable-namesys-pubsub` flag; enables pubsub.
|
||||
so that we don't have to hit the DHT for the initial resolution.
|
||||
Alternatively, we could republish the last record periodically.
|
||||
|
||||
---
|
||||
|
||||
## QUIC
|
||||
|
||||
### In Version
|
||||
@ -605,7 +490,7 @@ run your daemon with the `--enable-namesys-pubsub` flag; enables pubsub.
|
||||
|
||||
### State
|
||||
|
||||
Experiment, disabled by default
|
||||
Candidate, disabled by default but it will be enabled by default in 0.6.0.
|
||||
|
||||
### How to enable
|
||||
|
||||
@ -643,31 +528,16 @@ Automatically discovers relays and advertises relay addresses when the node is b
|
||||
Modify your ipfs config:
|
||||
|
||||
```
|
||||
ipfs config --json Swarm.EnableRelayHop false
|
||||
ipfs config --json Swarm.EnableAutoRelay true
|
||||
```
|
||||
|
||||
Bootstrappers (and other public nodes) need to also enable the AutoNATService:
|
||||
```
|
||||
ipfs config --json Swarm.EnableAutoNATService true
|
||||
```
|
||||
NOTE: Ensuring `Swarm.EnableRelayHop` is _false_ is extremely important here. If you set it to true, you will _act_ as a public relay for the rest of the network instead of _using_ the public relays.
|
||||
|
||||
### Road to being a real feature
|
||||
|
||||
- [ ] needs testing
|
||||
|
||||
|
||||
## TLS 1.3 as default handshake protocol
|
||||
|
||||
### In Version
|
||||
|
||||
0.5.0
|
||||
|
||||
### State
|
||||
|
||||
Stable
|
||||
|
||||
---
|
||||
|
||||
## Strategic Providing
|
||||
|
||||
### State
|
||||
@ -694,8 +564,6 @@ ipfs config --json Experimental.StrategicProviding true
|
||||
- [ ] provide all
|
||||
- [ ] provide strategic
|
||||
|
||||
---
|
||||
|
||||
## GraphSync
|
||||
|
||||
### State
|
||||
|
||||
Loading…
Reference in New Issue
Block a user