hiero-ledger / hiero-ledger/hiero-consensus-node

CLPR-8.1: Besu Plugin Scaffold and Configuration

Open
#24,552 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.