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

Idea for `ISSPostMortemProtocol`

Open
#7,796 0 comments 0 reactions 0 assignees View on GitHub
Platform
Dominant language
Java
Stars
406
Forks
226
Avg merge
3d 4h
Merged PRs (30d)
210

Description

This issue is to capture some thoughts about a potential improvement to how we report on ISSes:

- Currently, debugging an ISS involves manually comparing hashstream files from multiple nodes
- To avoid this manual process, we could create a new `ISSPostMortemProtocol`
- When a node observes an ISS, it should execute this protocol one time with each peer
- The protocol exchanges raw bytes, _not_ through consensus
- The protocol would involve exchanging hashes with each peer, starting at the root of the state
- The pair of nodes executing this protocol would step down through each node of the tree, and each generate a report about which hashes differ with that peer
- Improvements to `MerkleMap` and `VirtualMap` could allow drilling all the way down to what specific piece of data differs
- Execution of this protocol in the case of an ISS would immediately pinpoint the problem, and allow work to begin on a fix without delay

This protocol would perform the same job as the PCLI command mentioned [here](https://github.com/hashgraph/hedera-services/issues/7775), but without requiring access to multiple sets of logs

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing PCLI command described in issue #7775 and the current ISS debugging workflow involving hashstream files from multiple nodes. Then investigate the protocol and state-tree components relevant to MerkleMap and VirtualMap. Done would require a defined peer-to-peer post-mortem protocol that reports differing hashes and can identify the divergent data without relying on multiple log sets.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.