提交 9e79c5e3 作者: Dr Ian Preston 提交者: Steven Allen

add docs for p2p http proxy

License: MIT
Signed-off-by: 's avatarIan Preston <ianopolous@protonmail.com>
上级 264d9d60
......@@ -21,6 +21,7 @@ the above issue.
- [BadgerDB datastore](#badger-datastore)
- [Private Networks](#private-networks)
- [ipfs p2p](#ipfs-p2p)
- [p2p http proxy](#p2p-http-proxy)
- [Circuit Relay](#circuit-relay)
- [Plugins](#plugins)
- [Directory Sharding / HAMT](#directory-sharding-hamt)
......@@ -382,6 +383,85 @@ with `ssh [user]@127.0.0.1 -p 2222`.
---
## p2p http proxy
Allows proxying of HTTP requests over p2p streams. This allows serving any standard http app over p2p streams.
### State
Experimental
### In Version
master, 0.4.18
### How to enable
The `p2p` command needs to be enabled in config:
```sh
> ipfs config --json Experimental.Libp2pStreamMounting true
```
On the client, the p2p http proxy needs to be enabled in the config:
```sh
> ipfs config --json Experimental.P2pHttpProxy true
```
### How to use
**Netcat example:**
First, pick a protocol name for your application. Think of the protocol name as
a port number, just significantly more user-friendly. In this example, we're
going to use `test`.
***Setup:***
1. A "server" node with peer ID `$SERVER_ID`
2. A "client" node.
***On the "server" node:***
First, start your application and have it listen for TCP connections on
port `$APP_PORT`.
Then, configure the p2p listener by running:
```sh
> ipfs p2p listen --allow-custom-protocol test /ip4/127.0.0.1/tcp/$APP_PORT
```
This will configure IPFS to forward all incoming `test` streams to
`127.0.0.1:$APP_PORT` (opening a new connection to `127.0.0.1:$APP_PORT` per incoming stream.
***On the "client" node:***
Next, have your application make a http request to `127.0.0.1:5001/proxy/http/$SERVER_ID/$PROTOCOL/$FORWARDED_PATH`. This
connection will be forwarded to the service running on `127.0.0.1:$APP_PORT` on
the remote machine (which needs to be a http server!) with path `$FORWARDED_PATH`. You can test it with netcat:
***On "server" node:***
```sh
> echo -e "HTTP/1.1 200\nContent-length: 11\n\nIPFS rocks!" | nc -l -p $APP_PORT
```
***On "client" node:***
```sh
> curl http://localhost:5001/proxy/http/$SERVER_ID/test/
```
You should now see the resulting http response: IPFS rocks!
### 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
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论