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

feature request: able to select plugins at build-time #533

Open
abitmore opened this issue Dec 13, 2017 · 5 comments
Open

feature request: able to select plugins at build-time #533

abitmore opened this issue Dec 13, 2017 · 5 comments
Assignees
Labels
build About build process feature

Comments

@abitmore
Copy link
Member

This would be useful.

@nathanielhourt
Copy link
Contributor

So would this look like we specify a set of plugins at build, and then those plugins get built-in and loaded automatically, regardless of what the config.ini says?

@oxarbitrage
Copy link
Member

It is not the config the main problem, if the config loads a plugin that is not built then it will just throw or whatever.

The idea is for example if i want to use on my node only the account_history plugin i should not be compiling all the rest of them, i should have an option to only build that plugin.

It is not a big issue right now as plugins dont take a lot of time to build but i am thinking that as we encourage devs to write plugins the number of them in the future can and will be bigger.

Main problem i think is the amount of code that will need to be refactored as the headers of plugins are included everywhere.

@oxarbitrage
Copy link
Member

As an example we can currently build the programs we want by make witness_node, that will build witness node and not the cli wallet nor other programs.
A similar option should be available for plugins.

I originally had the idea of plugin build options at cmake level, then check for them in the c++ to include plugin headers and to use plugin code; however this will make our code ugly with checks to include a header, a lot of conditionals, etc that i abandoned the idea.

@oxarbitrage
Copy link
Member

This will also help us with the overall requirements of the bitshares-core. For example curl is used only in the 2 elasticsearch plugins but it needs to be installed even if the user is for example a block producer and only want to use the witness node plugin.

I have other plugin prototypes, for example a lua plugin where lua is required to be installed in the machine, zeromq, postgres, etc.
Currently, any plugin that uses a third party library will increase the requirements to build a node even if the user is not interested at all in the plugin features.

@pmconrad
Copy link
Contributor

Related: PBSA/peerplays#31

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build About build process feature
Projects
None yet
Development

No branches or pull requests

4 participants