A production-ready Apache NiFi extension bundle for real-time Ethereum Beacon Chain event processing via Server-Sent Events (SSE).
- Real-time Event Streaming: Listen to Ethereum Beacon Chain events in real-time
- Configurable Event Filtering: Subscribe to specific event types (head, block, attestation, etc.)
- Production Ready: Comprehensive error handling and logging
- High Performance: Optimized for high-throughput event processing
- Easy Integration: Simple configuration and deployment
Provides connectivity to Ethereum Beacon Chain event streams.
Configuration:
- Base URL: Ethereum beacon chain API endpoint
- Topics: Event types to subscribe to Processes incoming events and creates FlowFiles for downstream processing.
Relationships:
success: Successfully processed eventsfailure: Failed event processing
Add to your Maven project:
<dependency>
<groupId>io.github.am-ilcar</groupId>
<artifactId>nifi-eth-events-bundle</artifactId>
<version>1.0.0</version>
</dependency>- Download the NAR files from releases
- Copy to your NiFi
libdirectory:nifi-eth-events-services-api-nar-1.0.0.narnifi-eth-events-services-nar-1.0.0.narnifi-eth-events-processors-nar-1.0.0.nar
- Restart NiFi
git clone https://github.com/Am-ilcar/nifi-eth-events-bundle.git
cd nifi-eth-events-bundle
mvn clean package- Add a
StandardBeaconEventsServicecontroller service - Configure the Beacon Chain API endpoint
- Select event types to monitor
- Add
BeaconEventsProcessorto your flow - Reference the controller service
- Configure event filtering
Controller Service:
Base URL: "https://your-beacon-node.example.com"
Processor:
Event Types: "head,block,attestation"| Event Type | Description |
|---|---|
head |
New head of the beacon chain |
block |
New beacon block |
attestation |
Validator attestations |
voluntary_exit |
Voluntary validator exits |
proposer_slashing |
Proposer slashing events |
attester_slashing |
Attester slashing events |
blob_sidecar |
Blob sidecar data |
finalized_checkpoint |
Finalized checkpoints |
chain_reorg |
Chain reorganization events |
- Blockchain Monitoring: Real-time monitoring of Ethereum Beacon Chain
- DeFi Applications: Event-driven DeFi protocol integration
- Analytics Pipelines: Stream events to analytics platforms
- Alerting Systems: Create alerts based on specific blockchain events
- Data Archiving: Archive blockchain events for compliance
- Java: 21 or higher
- Apache NiFi: 2.3.0 or higher (optimized for 2.5.0)
- Network: Access to Ethereum Beacon Chain RPC endpoint
We welcome contributions! Please see our contributing guidelines.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Bug Reports: GitHub Issues
- Feature Requests: GitHub Issues
- Discussions: GitHub Discussions
- eth-events-listener - Core event listening library
- Apache NiFi - Data integration platform
- Apache NiFi community for the excellent data integration platform
- Ethereum Foundation for the Beacon Chain specifications
- Contributors and maintainers
Made with ❤️ for the Ethereum and Apache NiFi communities