https://github.com/ConsenSys/besu-plugins
Hyperledger Besu plugins
https://github.com/ConsenSys/besu-plugins
Last synced: about 1 month ago
JSON representation
Hyperledger Besu plugins
- Host: GitHub
- URL: https://github.com/ConsenSys/besu-plugins
- Owner: Consensys
- License: apache-2.0
- Created: 2020-07-27T07:30:09.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2025-02-13T05:31:55.000Z (4 months ago)
- Last Synced: 2025-04-13T02:02:48.373Z (2 months ago)
- Language: Java
- Homepage: https://doc.quorumplugins.consensys.net/en/latest/Concepts/Besu-Plugins/Event-Streams/
- Size: 3.44 MB
- Stars: 19
- Watchers: 24
- Forks: 10
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE-OF-CONDUCT.md
- Governance: GOVERNANCE.md
Awesome Lists containing this project
- awesome-besu - Quorum Besu Plugins - 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. (Plugins)
README
# Quorum Besu Plugins
[](https://circleci.com/gh/ConsenSys/besu-plugins/tree/master)
[](https://github.com/ConsenSys/besu-plugins/blob/master/LICENSE)
[](https://discord.com/invite/TCtK3YM)**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.
## Useful Links
* [Besu User Documentation](https://besu.hyperledger.org)
* [Plugins User Documentation](https://docs.quorumplugins.consensys.net/)
* [Plugins Issues](https://github.com/ConsenSys/besu-plugins/issues)
* [Contribution guidelines](CONTRIBUTING.md)
* [Plugins Changelog](CHANGELOG.md)## Plugins
### Event streams
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](https://github.com/ConsenSys/besu-plugins/tree/master/event-stream/common) to facilitate the addition of support for other message brokers.**List of compatible message brokers:**
- [Kafka](https://github.com/ConsenSys/besu-plugins/tree/master/event-stream/kafka)**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## Quorum Besu Plugins users
See our [user documentation](https://docs.quorumplugins.consensys.net/Concepts/Besu-Plugins/Event-Streams).
## Quorum Besu Plugins developers
* [Contribution Guidelines](CONTRIBUTING.md)
* [Coding Conventions](https://github.com/hyperledger/besu/blob/master/CODING-CONVENTIONS.md)## Build Instructions
### Install Prerequisites
* Java 11
### Build and Dist
### Install Plugins
To allow Besu to access and use the plugin, copy the plugin (.jar) to the plugins directory.
```shell script
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
### Build and Test
To build, clone this repo and run with `gradle`:
```shell script
git clone https://github.com/ConsenSys/besu-plugins.git
cd besu-plugins && ./gradlew
```After a successful build, distribution packages are available in `build/distributions`.
## Code Style
We use Google's Java coding conventions for the project. To reformat code, run:
```shell script
./gradlew spotlessApply
```Code style is checked automatically during a build.
## Testing
All the unit tests are run as part of the build, but can be explicitly triggered with:
```shell script
./gradlew test
```