Commit Graph

76 Commits

Author SHA1 Message Date
Mohsin Zaidi
ecd2628a16
Integrate go-dag-jose plugin (#8569)
* feat(dag-jose): integrate `go-dag-jose` plugin
* test(dag-jose): sharness test for dag-jose plugin

Co-authored-by: Eric Myhre <hash@exultant.us>
2021-11-30 10:58:15 -08:00
guseggert
a35dd2ea0d ci: preload peerlog plugin, disable by default
This preloads the peerlog plugin in the ipfs binary, but keeps it
disabled by default. To enabled it, set Enabled=true in its config.

The motivation is to simplify building and deploying gateways, and for
them to use binaries that are more similar to release bins.
2021-08-25 19:02:51 +00:00
Hannah Howard
f63a997c35
IPLD Prime In IPFS: Target Merge Branch (#7976)
* feat: switch to using go-ipld-prime for codecs, path resolution, and the `dag put/get` commands
* fix: `dag put/get` not roundtripping due to an extra new line being added (https://github.com/ipfs/go-ipfs/issues/3503)

More detailed information is in the CHANGELOG.md file. Very high level:
* IPLD codecs (and their plugins) must use go-ipld-prime
* Added support for the dag-json codec
* `dag get/put` use IPLD codec names from the multicodec table
* `dag get` defaults to dag-json output instead of json, but may output with other codecs
* Data model pathing can be achieved using the /ipld prefix. For example, you can use `/ipld/QmFoo/Links/0/Hash` to traverse through a DagPB node
* With `dag get/put` the DagPB field names have been changed to match the ones in the protobuf listed in the specification

Co-authored-by: hannahhoward <hannah@hannahhoward.net>
Co-authored-by: Daniel Martí <mvdan@mvdan.cc>
Co-authored-by: acruikshank <acruikshank@example.com>
Co-authored-by: Steven Allen <steven@stebalien.com>
Co-authored-by: Will Scott <will.scott@protocol.ai>
Co-authored-by: Will Scott <will@cypherpunk.email>
Co-authored-by: Rod Vagg <rod@vagg.org>
Co-authored-by: Adin Schmahmann <adin.schmahmann@gmail.com>
Co-authored-by: Eric Myhre <hash@exultant.us>
2021-08-17 13:32:49 -04:00
godcong
8c337160ac fix document error 2021-07-17 17:20:58 +08:00
lanzafame
3d9821260a register quic opencensus metrics 2020-12-08 20:22:38 -05:00
Tomasz Zdybał
6b83bcd60e
Add missing plugin support on FreeBSD
Go plugins are supported on FreeBSD, but build tags in
`plugin/loader/load_*.go` enable IPFS plugins only on Linux and Darwin.
2020-10-12 00:54:23 +02:00
Steven Allen
c07b6fb1d1 feat: nice errors when failing to load plugins
partially fixes #7305
2020-08-08 22:53:18 -04:00
Steven Allen
58e52f351d feat: make it possible to enable plugins with a build env variable 2020-02-10 13:05:32 -08:00
Steven Allen
0ab1fa18da fix: disable preloading the logger plugin by default 2020-02-10 12:54:55 -08:00
Oli Evans
edfe9c5efd
feat: add peerlog plugin
adds a plugin to log just peerIDs for nodes we connect to, to allow us to see how many unique peers a node connects to over time.

It's set up a preloaded plugin, so it would be enabled by default. We may want to extract it to a seperate repo so we can make it an optional add on.

**Usage**

```console
$ GOLOG_FILE=~/peer.log IPFS_LOGGING_FMT=json ipfs daemon
```

**output**

```json
{"level":"info","ts":"2020-02-10T13:54:26.639Z","logger":"plugin/peerlog","caller":"peerlog/peerlog.go:51","msg":"connected","peer":"QmS2H72gdrekXJggGdE9SunXPntBqdkJdkXQJjuxcH8Cbt"}
{"level":"info","ts":"2020-02-10T13:54:59.095Z","logger":"plugin/peerlog","caller":"peerlog/peerlog.go:56","msg":"disconnected","peer":"QmS2H72gdrekXJggGdE9SunXPntBqdkJdkXQJjuxcH8Cbt"}
```

License: MIT
Signed-off-by: Oli Evans <oli@tableflip.io>
2020-02-10 14:05:16 +00:00
Oli Evans
d83e07ea90
wip: minimal plugin works
License: MIT
Signed-off-by: Oli Evans <oli@tableflip.io>
2020-02-10 11:29:51 +00:00
Steven Allen
a53d48059b fix: migrate from deprecated warning function 2020-01-28 21:20:21 -08:00
Michael Muré
2a9e5005da
plugins: introduce PluginDaemonInternal to directly interact with IpfsNode 2019-11-22 13:18:44 +01:00
Michael Muré
72026b896f plugins: support Close() for Tracer plugins as well
Most of the tracers available need to properly close to send
the remaining traces before the process exit.
2019-09-24 17:43:07 +09:00
Steven Allen
150b6dd1bd plugins: add support for plugin configs
For now, configs specified in `daemon --init-config` and `init CONFIG` are not
available. We should fix this eventually but isn't necessary for now (and
supporting this will be annoying).
2019-08-29 17:17:23 -07:00
Steven Allen
09d517746d feat: improve plugin preload logic
* Allow '*' meaning "load all plugins".
* Expose a Preload function that users can call.
2019-08-15 12:24:51 -07:00
Steven Allen
a9f7490149 feat(plugins): add a bit of documentation 2019-06-28 11:15:02 +02:00
Steven Allen
4badef2a14 feat: make it easier to load custom plugins
1. Allow loading from arbitrary and multiple directories.
2. Make it possible to directly load built-in plugins that _aren't_ in the
preload list.
2019-06-28 08:42:29 +02:00
Steven Allen
2a22eb6b90
Merge pull request #6438 from fd/fix/dameon/close-started-plugins
Close started plugins when one of them fails to start.
2019-06-12 09:39:05 -07:00
Simon Menke
42dc64d0bf Load plugins on darwin/macOS 2019-06-12 12:05:31 +02:00
Simon Menke
c444b1b945 Close started plugins when one of them fails to start. 2019-06-12 11:55:03 +02:00
Steven Allen
1f293eff1b chore: fix a bunch of issues caught by golangci-lint
Most of these are probably harmless but a few looked like they might actually be
bugs. Most of them are just faulty tests.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2019-03-29 11:57:45 +00:00
Jakub Sztandera
42e191c017 gx: unrewrite
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-03-05 18:33:56 +01:00
Steven Allen
f227862e88 gx: update go-ipfs-cmds, go-bitswap, go-libp2p-kad-dht, and go-mplex
Fixes the latest batch of bugs found in RC testing.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2019-02-27 12:39:24 -08:00
Hector Sanjuan
6972a9aa4d Gx Bubble. libp2p-6.0.38
License: MIT
Signed-off-by: Hector Sanjuan <code@hector.link>
2019-02-27 01:10:59 +00:00
Steven Allen
fea7ae727f gx: update go-cid
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2019-02-20 20:29:06 -08:00
Steven Allen
f924f57c61 gx: update go-bitswap and go-libp2p-kad-dht
* go-bitswap: fix some race conditions.
* go-libp2p-kad-dht: fix a goroutine leak.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2019-02-20 17:19:54 -08:00
Steven Allen
91ca5911be coreapi: return coreiface.ErrNotSupported when "catting" symlinks.
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2019-02-19 03:48:04 -08:00
Jakub Sztandera
28cf3de0f9 Update protobuf
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-02-18 20:46:22 +01:00
Steven Allen
cf0d4706e2 gx: update libp2p stuff
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2019-02-14 14:58:35 -08:00
Steven Allen
e97a60b073 gx: update go-ipfs-files
fix compatibility issue with js-ipfs

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2019-02-11 10:48:58 -08:00
Łukasz Magiera
648cc40ec3 coreapi: fix import grouping after extracting iface
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2019-02-09 01:57:26 +01:00
Łukasz Magiera
7ed6b518b6 coreapi: update imports to updated interface
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2019-02-09 01:42:32 +01:00
Steven Allen
a9f2aee3fc plugin: add plugin type for daemon plugins
This allows users to run multiple go-ipfs "clients" in-process.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2019-01-30 12:54:04 -08:00
Steven Allen
01514d5179 plugin: allow plugins to implement multiple (or no) plugin interfaces
There's no reason for these to be exclusive.

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2019-01-30 12:53:28 -08:00
Łukasz Magiera
53e55e3314 gx: update go-unixfs to 1.2.14 and go-bitswap to 1.1.21
(and everything else...)

License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2019-01-23 11:01:38 -08:00
Kacper Łukawski
a1e654cd38 plugin: wire in plugin loader for node creation
License: MIT
Signed-off-by: Kacper Łukawski <kacluk98@gmail.com>
2018-12-17 19:41:45 -08:00
Łukasz Magiera
5bfb8867f7 Load static plugins in init
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-11-05 15:45:49 +01:00
Łukasz Magiera
c154f7f01e Move datastores to plugins
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-11-05 15:40:23 +01:00
Steven Allen
0d80fc54c3 gx: update go-log and sha256
fixes #5709

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-11-02 21:17:20 -07:00
Hector Sanjuan
ef7234d269 Bubble deps
License: MIT
Signed-off-by: Hector Sanjuan <hector@protocol.ai>
2018-10-29 18:49:37 +01:00
Steven Allen
ab9e211bc3
Merge pull request #5187 from ipfs/feat/datastore-plugins
Add support for datastore plugins
2018-10-04 21:01:42 -07:00
Steven Allen
dac058f8be gx: update go-log go-ipld-cbor
(and friends)

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-09-24 05:36:29 -07:00
Jeromy
7b9cfda084 add support for datastore plugins
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2018-09-23 16:52:57 +02:00
Kevin Atkinson
d3174f4bd9 gx update and fix code to use new Cid type
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-09-11 22:21:04 -04:00
Steven Allen
656d7cc1a6 gx: update go-cid, go-libp2p-peer, go-ipfs-cmds, go-ipfs-cmdkit
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-08-21 17:39:56 -07:00
Steven Allen
2450ddde81 gx: update go-cid
License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-08-15 08:30:22 -07:00
Kevin Atkinson
075ecb09d0 Gx updates and fixes to use new cid.Builder interface.
License: MIT
Signed-off-by: Kevin Atkinson <k@kevina.org>
2018-08-12 19:15:07 -04:00
Steven Allen
594d95af5d update gogo-protobuf
fixes #3214

License: MIT
Signed-off-by: Steven Allen <steven@stebalien.com>
2018-08-08 18:56:13 -07:00
Łukasz Magiera
c85824448d build tag to disable dynamic plugins
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
2018-07-22 21:23:30 +02:00