docs: Add some docs on plugins
License: MIT Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
Łukasz Magiera committed
Sep 20, 2017 at 15:11 UTC
a11bb713d681cf532ec5a5e8a729c59d1b5da83f
3 files changed
+63
CHANGELOG.md
+1
@@ -76,6 +76,7 @@ plugin](https://github.com/ipfs/go-ipld-eth) that lets ipfs ingest and operate
76
on all ethereum blockchain data. Soon to come are plugins for the bitcoin and
77
zcash data formats. In the future, we will be adding plugins for other things
78
like datastore backends and specialized libp2p network transports.
79
+You can read more on this topic in [Plugin docs](docs/plugins.md)
80
81
In order to simplify its integration with fs-repo-migrations, we've switched
82
the ipfs/go-ipfs docker image from a musl base to a glibc base. For most users
docs/experimental-features.md
+13
@@ -282,3 +282,16 @@ Peers can see their (unspecific) relay address in the output of
282
dialing.
283
- [ ] Dialing priorities for relay addresses; arguably, relay addresses should
284
have lower priority than direct dials.
285
+
286
+## Plugins
287
+
288
+Plugins allow to add functionality without the need to recompile the daemon.
289
+
290
+### Basic Usage:
291
+
292
+See [Plugin docs](./plugins.md)
293
+
294
+### Road to being a real feature
295
+
296
+- [ ] Better support for platforms other than Linux
297
+- [ ] More plugins and plugin types
docs/plugins.md
new
+49
@@ -0,0 +1,49 @@
1
+# Plugins
2
+
3
+Since 0.4.11 go-ipfs has an experimental plugin system for various added
4
+functionality.
5
+
6
+When IPFS node is created, it will load plugins from `$IPFS_PATH/plugins`
7
+directory (by default `~/.ipfs/plugins`).
8
+
9
+### Plugin types
10
+
11
+#### IPLD
12
+IPLD plugins add support for additional formats to `ipfs dag` and other IPLD
13
+related commands.
14
+
15
+### Supported plugins
16
+
17
+| Name | Type |
18
+|------|------|
19
+| git | IPLD |
20
+
21
+#### Installation
22
+
23
+##### Linux
24
+
25
+1. Build included plugins:
26
+```bash
27
+go-ipfs$ make build_plugins
28
+go-ipfs$ ls plugin/plugins/*.so
29
+```
30
+
31
+3. Copy desired plugins to `$IPFS_PATH/plugins`
32
+```bash
33
+go-ipfs$ mkdir -p ~/.ipfs/plugins/
34
+go-ipfs$ cp plugin/plugins/git.so ~/.ipfs/plugins/
35
+go-ipfs$ chmod +x ~/.ipfs/plugins/git.so # ensure plugin is executable
36
+```
37
+
38
+4. Restart daemon if it is running
39
+
40
+##### Other
41
+
42
+Go currently only supports plugins on Linux, for other platforms you will need
43
+to compile them into IPFS binary.
44
+
45
+1. Uncomment plugin entries in `plugin/loader/preload_list`
46
+2. Build ipfs
47
+```bash
48
+go-ipfs$ make build
49
+```