fix(grey): remove dead raw EquivocationEvidence broadcast#653
Conversation
The raw evidence broadcast is dead code — peers only decode EquivocationCountersig, so the raw evidence is silently discarded. The countersig already contains the full evidence, so removing the raw broadcast loses no functionality. Fixes #645. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Genesis ReviewComparison targets:
How to reviewPost a comment with the following format (rank from best to worst): Use the short commit hashes above and To meta-review another reviewer's comment, react with 👍 or 👎. |
|
/review The PR removes a redundant BroadcastEquivocation call in two symmetric locations in node.rs — the raw evidence broadcast is unnecessary since the countersig already embeds the evidence, so peers receive everything they need from the countersig alone. The change is correct, minimal, and the rationale in the updated comment is clear. All CI checks pass and no existing tests are modified. |
|
JAR Bot: Quorum reached — triggering merge. |
|
/review The raw |
|
JAR Bot: Quorum reached — triggering merge. |
|
/review Removes redundant BroadcastEquivocation calls in two places — the countersig already contains the evidence, so broadcasting raw evidence separately is dead code. Small, correct cleanup with a clear comment explaining the rationale. Ranked below feature additions like the SIGHUP handler (8c441e0) and genesis comparison target selection (8a89b50), but above trivial fixes like removing debug eprintln (cf701ea). |
|
JAR Bot: Quorum reached — triggering merge. |
|
/review Superseded by #718, which takes the correct approach. The premise here — "raw evidence is redundant because countersig contains it" — is wrong. Raw evidence broadcast is the trigger for the relay path: a peer that missed both conflicting blocks learns of the equivocation via the raw evidence message and can then sign and broadcast its own countersig. PR #718 keeps the raw broadcast and adds a fallback decoder in EquivocationReceived to handle it. If this PR merged, #718 would need to re-add the broadcast it removes. Design ranked near-last because the architectural reasoning points in the wrong direction. |
|
JAR Bot: Quorum reached — triggering merge. |
|
Superseded by #718, which addresses #645 the opposite way: instead of removing the raw EquivocationEvidence broadcast, it makes the receiver handle it properly (signing and relaying its own countersig). The raw broadcast is no longer dead code — it's the entry point for validators that missed one of the conflicting blocks locally to still contribute to §17 quorum. Closing this PR as the premise no longer holds. |
Summary
EquivocationEvidencebroadcast that peers silently discard (they only decodeEquivocationCountersig)Fixes #645.
Test plan
cargo check -p greypassescargo clippy -p grey -- -D warningspassescargo fmt --all -- --checkpasses