hiero-ledger / hiero-ledger/hiero-consensus-node
CLPR-8.1: Besu Plugin Scaffold and Configuration
- Dominant language
- Java
- Stars
- 406
- Forks
- 226
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 210
Description
## Story CLPR-8.1: Besu Plugin Scaffold and Configuration
**Parent Epic:** CLPR-8: Besu Endpoint
**Repo:** TBD
### Objective
Create `ClprEndpointPlugin` implementing `BesuPlugin` with lifecycle management and configuration.
### Acceptance Criteria
- **AC-1:** `register(BesuContext)` / `start()` / `stop()` lifecycle.
- **AC-2:** TOML config (`[clpr]` section) + CLI flag overrides: `enabled`, `contract-address`, `signing-key-file`, `grpc-port`, `tls-certificate`, `tls.client-auth`, `auto-register`.
- **AC-3:** Besu services: `BlockchainService`, `TransactionPoolService`, `BesuEvents`, `MetricsSystem`.
- **AC-4:** Zero overhead when `enabled = false`.
- **AC-5:** Graceful shutdown: in-flight syncs complete, gRPC down, threads terminated.
- **AC-6:** Prometheus metrics registered under `clpr` subsystem.
- **AC-7:** Auto-registration: if `auto-register = true`, checks whether endpoint is registered on-chain and submits `registerEndpoint()` if not.
### Dependencies
- Besu Plugin API
### Risk
**Low** — Standard Besu plugin pattern.
Contributor guide
Research direction
Start by reading the Besu Plugin API and the BesuPlugin lifecycle, then map the requested register(BesuContext), start(), and stop() methods to the repository structure. Review how TOML settings, CLI overrides, services, gRPC shutdown, metrics, and auto-registration are handled before implementation. Done means all seven acceptance criteria are met, including disabled-mode behavior and graceful shutdown.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100