Feature - Flexible Plugin Registration
Description
As a Besu node operator, I want the ability to have granular control over plugin registration so that I can ensure only the necessary and explicitly specified plugins are activated, enhancing the security and operational efficiency of my node.
Acceptance Criteria
- The system should allow specifying a list of plugins to be registered via CLI options or TOML configuration.
- The system should perform validation against the specified list of plugins, halting the startup process if any required plugin is missing.
- Any plugin found in the plugins directory but not explicitly required for registration should be ignored.
- If the option is unset, the default behavior registers all plugins in the directory.
Steps to Reproduce
- use the
--pluginsoption followed by a comma-separated list of plugin names that should be registered. - Run the Besu node with the updated CLI command or configuration file.
Example CLI command: besu --plugins=pluginA,pluginB
Expected behavior: When starting a Besu node with the new granular control feature enabled and a list of required plugins specified, the node should only attempt to register those plugins. If a specified plugin is missing, the node should halt the startup process, and an informative error message should be displayed.
Actual behavior: Currently, Besu attempts to register all plugins found in the specified plugins directory, without the ability to specify which plugins should be registered or to halt the startup process if a critical plugin is missing.