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

Accept Transaction.body and normalize transactions

Open
#17,448 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

### Background

The `TransactionChecker` has to be updated to accept the new normalized format for `Transaction`. If a transaction is received that uses `bodyBytes` or `signedTransactionBytes`, we must create a normalized version of the transaction and use it in the remaining code.

### Acceptance Criteria

1. The consensus node can handle transactions that use either `body` + `sigMap`, `bodyBytes` + `sigMap`, or `signedTransactionBytes`.
2. If the consensus node receives a transaction that uses `bodyBytes` or `signedTransactionBytes`, it will normalize the transaction and write the normalized transaction into the record stream/block stream.

### Dependencies

### Definition of Ready (DoR) Checklist

- [ ] Clear acceptance criteria
- [ ] Clear and detailed description
- [ ] Dependencies identified
- [ ] Links to documentation
- [ ] Should be completable in 2-3 Days
- [ ] Initial draft of Low-level design document
- [ ] At least high level test plan
- [ ] Groomed/Estimated

### Definition of Done (DoD) Checklist

- [ ] Acceptance Criteria complete
- [ ] No Codacy issues greater than minor (in new code)
- [ ] JavaDocs updated/created
- [ ] Code commented
- [ ] Unit tests created/updated
- [ ] 80% test code coverage (in new code)
- [ ] Happy Path and major negative cases in HAPI tests as applicable

Contributor guide

Open the contributing guide

Research direction

Start at TransactionChecker and trace how transactions enter the record stream and block stream. Review the transaction representations named in the acceptance criteria, then use the existing unit and HAPI test areas to verify support for all three input forms and normalized output.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.