Quorum Besu Plugins extends the Hyperledger Besu functionality. It uses the Plugin API to retrieve data from any Besu network, public or permissioned and feed it into an application or system.
This API exposes data about the following components:
- Blocks
- Balances
- Transactions
- Smart contracts
- Execution results
- Logs
- Syncing state.
The current Besu recommended version is 20.10.0
We recommend using plugins with the last minor (i.e. 20.X) Besu version in production. That version will have undergone the most extensive testing with plugins. While patch releases of Besu should work with plugins, they are not put through the same QA cycle and are only tested by automatic tests. If you have a problem using plugins with a Besu patch release, please open an issue.
- Besu User Documentation
- Plugins User Documentation
- Plugins Issues
- Contribution guidelines
- Plugins Changelog
This plugin will listen to events occurring on the Ethereum network and will broadcast them to Kafka. Core broadcasting logic has been extracted to a common folder to facilitate the addition of support for other message brokers.
List of compatible message brokers:
List of events that can be sent by the plugin:
- Block Propagated
- Block Added
- Block Reorg
- Transaction Added
- Transaction Dropped
- Transaction Reverted
- Sync Status Changed
- Log Emitted
See our user documentation.
- Java 11
To allow Besu to access and use the plugin, copy the plugin (.jar) to the plugins directory.
git clone https://github.com/ConsenSys/besu-plugins.git
cd besu-plugins && ./gradlew distTar installDist
This produces:
- Fully packaged distribution in
build/distributions
You can find the jar
of each plugin in build/libs
of the module
To build, clone this repo and run with gradle
:
git clone https://github.com/ConsenSys/besu-plugins.git
cd besu-plugins && ./gradlew
After a successful build, distribution packages are available in build/distributions
.
We use Google's Java coding conventions for the project. To reformat code, run:
./gradlew spotlessApply
Code style is checked automatically during a build.
All the unit tests are run as part of the build, but can be explicitly triggered with:
./gradlew test