Skip to content

feat(consensus): Send duplicate slots from shred network to consensus (revival of #1027)#1172

Open
InKryption wants to merge 23 commits intomainfrom
ink/send-duplicate-slot-to-consensus
Open

feat(consensus): Send duplicate slots from shred network to consensus (revival of #1027)#1172
InKryption wants to merge 23 commits intomainfrom
ink/send-duplicate-slot-to-consensus

Conversation

@InKryption
Copy link
Contributor

No description provided.

@github-project-automation github-project-automation bot moved this to 🏗 In progress in Sig Jan 9, 2026
@codecov
Copy link

codecov bot commented Jan 9, 2026

Codecov Report

❌ Patch coverage is 89.81571% with 105 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/shred_network/duplicate_shred_listener.zig 89.48% 57 Missing ⚠️
...hred_network/collector/duplicate_shred_handler.zig 90.65% 34 Missing ⚠️
src/shred_network/service.zig 67.85% 9 Missing ⚠️
src/gossip/service.zig 44.44% 5 Missing ⚠️
Files with missing lines Coverage Δ
src/core/epoch_tracker.zig 94.92% <100.00%> (ø)
src/core/leader_schedule.zig 96.62% <100.00%> (ø)
src/gossip/data.zig 76.41% <100.00%> (-0.11%) ⬇️
src/ledger/Reader.zig 89.68% <100.00%> (+0.12%) ⬆️
src/ledger/ResultWriter.zig 93.71% <100.00%> (+0.82%) ⬆️
src/ledger/shred.zig 90.28% <100.00%> (-0.42%) ⬇️
src/shred_network/collector/shred_receiver.zig 83.60% <100.00%> (+0.18%) ⬆️
src/shred_network/collector/shred_tracker.zig 87.25% <100.00%> (+0.56%) ⬆️
src/gossip/service.zig 86.61% <44.44%> (-0.27%) ⬇️
src/shred_network/service.zig 84.55% <67.85%> (-5.84%) ⬇️
... and 2 more

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@InKryption InKryption force-pushed the ink/send-duplicate-slot-to-consensus branch 3 times, most recently from 920dcef to 5a16138 Compare January 13, 2026 14:18
@InKryption InKryption force-pushed the ink/send-duplicate-slot-to-consensus branch 2 times, most recently from a974315 to 994f7c0 Compare January 16, 2026 20:25
@github-project-automation github-project-automation bot moved this from 🏗 In progress to 👀 In review in Sig Jan 30, 2026
Comment on lines 87 to 93
// TODO: Check feature flag for chained_merkle_conflict_duplicate_proofs
// For now, we'll store it unconditionally. When feature checking is implemented,
// this should check: if (!chained_merkle_conflict_duplicate_proofs) continue;

// Although this proof can be immediately stored on detection, we wait until
// here in order to check the feature flag, as storage in ledger can
// preclude the detection of other duplicate proofs in this slot
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we not pass the feature set and check it now?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've looked through it, and it's actually not entirely clear to me what the best way would be to pass the feature set through.

Copy link
Contributor

@yewman yewman Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What issue do you see with passing the feature set in? We could potentially add it to EpochInfo in the EpochTracker unless we move the slot tracker outside replay. While the feature set is constant for most of the duration of an epoch, it can be different across forks in an epoch until the first slot in said epoch is rooted. This could be addressed on top of epoch-state-tracking if required. Another thing to check is whether this feature is activated on all clusters. If it is, just add a note here and we can remove the check.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dnut dnut linked an issue Feb 2, 2026 that may be closed by this pull request
@InKryption InKryption force-pushed the ink/send-duplicate-slot-to-consensus branch 6 times, most recently from e1ffafe to 6ee04e6 Compare February 4, 2026 07:03
dnut
dnut previously approved these changes Feb 6, 2026
@InKryption InKryption force-pushed the ink/send-duplicate-slot-to-consensus branch from e2a2b4d to 1e2810a Compare February 13, 2026 22:01
@InKryption InKryption force-pushed the ink/send-duplicate-slot-to-consensus branch 2 times, most recently from eccc9fb to b6ca584 Compare February 13, 2026 22:30
@InKryption InKryption force-pushed the ink/send-duplicate-slot-to-consensus branch from b6ca584 to 500e989 Compare February 14, 2026 18:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 👀 In review

Development

Successfully merging this pull request may close these issues.

DuplicateShredListener

4 participants