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

CLPR-4.4: Bundle Submission Pipeline

Open
#24,537 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-4.4: Bundle Submission Pipeline

**Parent Epic:** CLPR-4: Hiero Endpoint
**Repo:** hiero-ledger/hiero-consensus-node

### Objective

Implement the pipeline from received `ClprSyncPayload` to submitted `ClprSubmitBundle` transaction.

### Acceptance Criteria

- **AC-1:** Pre-verification: call verifier locally (read-only) against latest immutable state. Reject → discard, penalize peer reputation.
- **AC-2:** Transaction construction: `ClprSubmitBundleTransactionBody` signed by node's account key. Unique nonce per submission.
- **AC-3:** Submission via `SubmissionManager` (bypasses `IngestWorkflow` — direct to consensus).
- **AC-4:** Duplicate handling: replay rejection post-consensus is normal (another node submitted first). No retry, update reputation (normal).
- **AC-5:** Failure handling: throttle rejection → exponential backoff. Verification failure → no retry, reputation penalty. Network partition → buffer up to `clpr.maxPayloadBufferAge` (60s), then discard.
- **AC-6:** Duplicate reduction heuristics (Hiero-specific): random delay before submission (stagger across nodes), check `received_message_id` in latest state before submitting.

### Dependencies

- `SubmissionManager`, transaction signing
- CLPR-2.3 (SubmitBundle handler)
- CLPR-4.2 (pre-verification)

### Risk

**Medium** — SubmissionManager integration. Nonce management.

Contributor guide

Open the contributing guide

Research direction

Read the SubmissionManager and transaction-signing integration first, then review CLPR-4.2 pre-verification and the CLPR-2.3 SubmitBundle handler. Done means implementing the stated verification, signing, submission, duplicate, retry, buffering, and duplicate-reduction behavior, including nonce management.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.