Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IPFS Option plugins #7653

Closed
aschmahmann opened this issue Sep 4, 2020 · 1 comment · Fixed by #9010
Closed

IPFS Option plugins #7653

aschmahmann opened this issue Sep 4, 2020 · 1 comment · Fixed by #9010
Assignees
Labels
kind/feature A new feature need/triage Needs initial labeling and prioritization

Comments

@aschmahmann
Copy link
Contributor

aschmahmann commented Sep 4, 2020

Inspired by the occasional requests to configure the go-ipfs binary to use some of the options available when using IPFS as a library (e.g. #7617) it would be really convenient if we could create a type of DaemonPlugin that just output a set of IpfsNode constructor options (e.g. as described in #7652).

This would allow us to have a single major point of extensibility to monitor and expand (i.e. the IpfsNode constructor) while also expanding the options available to plugin developers.

We may want some error handling to occur in the event that Alice has two plugins that want to utilize conflicting options. However, IMO it would not be that unreasonable to put the burden of utilizing non-conflicting plugins on Alice. Other plugin systems of this nature allow conflicting/overriding options as long as there is a defined "load order" that allows users to tweak what the final output options look like.

Example:

Alice wants to utilize a plugin that uses several custom Bitswap options as well as a libp2p host with a custom peerstore. She creates two plugins AliceBitswap and AlicePeerstore that both return []IpfsNodeOption. These options are used by the daemon in the construction of the IpfsNode.

@aschmahmann aschmahmann added need/triage Needs initial labeling and prioritization kind/feature A new feature labels Sep 4, 2020
@guseggert
Copy link
Contributor

fx recently released some new features that let you modify specific dependencies in the graph (uber-go/fx#653), I have written a PoC plugin interface to allow arbitrary injections into the go-ipfs fx graph and it works fine, I'll clean it up and open a PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature A new feature need/triage Needs initial labeling and prioritization
Projects
No open projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants