hiero-ledger / hiero-ledger/hiero-consensus-node
Final Block Stream cutover work
- Dominant language
- Java
- Stars
- 406
- Forks
- 226
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 210
Description
### Background
There are number of changes that need to coincide with the release which cuts over to the block stream.
### Config
- Full TSS needs to be enabled
- Config property default value updates
- `streamMode=BLOCKS`
- `writerMode=GRPC`
- `blockStream.buffer.isBufferPersistenceEnabled=true`
- `blockStream.enableCutover=true`
- `blockStream.enableStateProofs=true`
- `hedera.recordStream.writeWrappedRecordFileBlockHashesToDisk=false`
- `hedera.recordStream.computeHashesFromWrappedRecordBlocks=false`
- `hedera.recordStream.liveWritePrevWrappedRecordHashes=false`
---
### Tasks
#### TSS
- [x] Provide path of (unpacked) WRAPS proving key to TSS lib – see #23913
- [x] TSS not to sign blocks unless `tss.enableCutover` is true – verify with @tinker-michaelj
#### Block Stream
- [ ] ~~Docker mount points for cutover, wraps dirs~~ – No longer needed; jumpstart data are config properties, WRAPS key is a sub-dir of `data/`
- [x] ~~Introduce jumpstart app properties to `release/0.72` – PR [here](https://github.com/hiero-ledger/hiero-consensus-node/pull/24197)~~
- [x] Introduce voting mechanism to avoid ISS failures for jumpstart migration – see #24205
---
### HAPI Testing
- Scenario for the software upgrade where we change these config values
- Negative test cases, for example all block nodes are not available or no block-nodes.json file?
- This could be case of back-pressure
- Negative test cases around TSS - failure to produce ledgerId, presence of recursive WRAPS proof, TSS ceremony
- Validate default WRAPS proving key download timeout of `300s` (5 min)
Contributor guide
Research direction
Start with the remaining HAPI Testing tasks and the listed block-stream and TSS configuration changes, including the release/0.72 jumpstart properties. Review the referenced issues and pull request before proceeding, then define upgrade scenarios and negative cases for unavailable block nodes, missing block-nodes.json, TSS failures, and the WRAPS proving-key timeout.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- distributed-systems, release, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100