1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-07-01 10:49:24 +08:00

Merge pull request #4255 from ipfs/docs/plugin

docs: Add some docs on plugins
This commit is contained in:
Jeromy Johnson
2017-10-09 16:55:31 +03:00
committed by GitHub
3 changed files with 67 additions and 0 deletions

View File

@ -76,6 +76,7 @@ plugin](https://github.com/ipfs/go-ipld-eth) that lets ipfs ingest and operate
on all ethereum blockchain data. Soon to come are plugins for the bitcoin and
zcash data formats. In the future, we will be adding plugins for other things
like datastore backends and specialized libp2p network transports.
You can read more on this topic in [Plugin docs](docs/plugins.md)
In order to simplify its integration with fs-repo-migrations, we've switched
the ipfs/go-ipfs docker image from a musl base to a glibc base. For most users

View File

@ -282,3 +282,20 @@ Peers can see their (unspecific) relay address in the output of
dialing.
- [ ] Dialing priorities for relay addresses; arguably, relay addresses should
have lower priority than direct dials.
## Plugins
### In Version
0.4.11
Plugins allow to add functionality without the need to recompile the daemon.
### Basic Usage:
See [Plugin docs](./plugins.md)
### Road to being a real feature
- [ ] Better support for platforms other than Linux
- [ ] More plugins and plugin types
- [ ] Feedback on stability

49
docs/plugins.md Normal file
View File

@ -0,0 +1,49 @@
# Plugins
Since 0.4.11 go-ipfs has an experimental plugin system that allows augmenting
the daemons functionality without recompiling.
When an IPFS node is created, it will load plugins from the `$IPFS_PATH/plugins`
directory (by default `~/.ipfs/plugins`).
### Plugin types
#### IPLD
IPLD plugins add support for additional formats to `ipfs dag` and other IPLD
related commands.
### Supported plugins
| Name | Type |
|------|------|
| git | IPLD |
#### Installation
##### Linux
1. Build included plugins:
```bash
go-ipfs$ make build_plugins
go-ipfs$ ls plugin/plugins/*.so
```
3. Copy desired plugins to `$IPFS_PATH/plugins`
```bash
go-ipfs$ mkdir -p ~/.ipfs/plugins/
go-ipfs$ cp plugin/plugins/git.so ~/.ipfs/plugins/
go-ipfs$ chmod +x ~/.ipfs/plugins/git.so # ensure plugin is executable
```
4. Restart daemon if it is running
##### Other
Go currently only supports plugins on Linux, for other platforms you will need
to compile them into IPFS binary.
1. Uncomment plugin entries in `plugin/loader/preload_list`
2. Build ipfs
```bash
go-ipfs$ make build
```