hiero-ledger / hiero-ledger/hiero-consensus-node
Block Streams must include all genesis actions, without exception.
- Dominant language
- Java
- Stars
- 406
- Forks
- 226
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 210
Description
### Background
During discussions with the Block Node team the question arose whether all actions (including all state create, system transaction, and other actions) performed at genesis (or shortly therafter) are included in the Block Stream.
The Block Node must be able to faithfully recreate the state of the network _from genesis_, which includes creating all of the states, system accounts and files, etc...
### Acceptance Criteria
1. The genesis startup process and subsequent non-user-initiated actions (collectively "genesis events") have been reviewed for interaction with Block Streams
2. All genesis events are fully reflected in the Block Stream
3. Appropriate HAPI tests exist that create a genesis network, run a few user transactions, and verify that the state produced in the Block Node is identical to the state produced in the Consensus Node after processing each block.
### Dependencies
1. Block Node must implement required State Management plugin(s).
2. Block Node must be able to provide a state snapshot for comparison
### 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
Research direction
Start by reviewing the genesis startup process and the handling of non-user-initiated actions in Block Streams, then check the Block Node state-management and snapshot dependencies. Use HAPI tests to create a genesis network, run user transactions, and compare Block Node and Consensus Node state after each block. Done means every genesis event is reflected and both states match.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, distributed-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100