Skip to content

DuplicateShredListener #1025

@dnut

Description

@dnut
  • do we need it for consensus? [will decide priority once we know this]

  • mapping out how it works?

  • is it about slashable conditions?

  • part of the TVU

Overview of DuplicateShredListener and what it is used for

In TVU
In WindowService
solWinInsert thread detects duplicates
-> Send duplicates via PossibleDuplicateShred.

solWinCheckDup thread in window service.
-> Receives possible duplicates
-> Upon confirmation of duplicate pushes it to Gossip. cluster_info.push_duplicate_shred

In TVU
In DuplicateShredListener
solCiEntryLstnr thread retrieves duplicate shreds
-> Retrieves from Gossip
-> Sends to consensus state via duplicate_slots_sender

In Replay
Self::process_duplicate_slots receives the duplicate slots via duplicate_slots_receiver
-> Ends up updating fork_choice.mark_fork_invalid_candidate

In summary, it serves as one of the Fault Detection & Recovery mechanism in Solana. In this case, it detects duplicate slots which then updates the fork choice ensuring this information is used in consensus when deciding how to vote.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

👀 In review

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions