fix(message_sender): validate outbound messages statelessly - #1193
fix(message_sender): validate outbound messages statelessly#1193shane-moore wants to merge 2 commits into
Conversation
|
@claude, please take a look |
|
Claude finished @shane-moore's task in 3m 52s —— View job Review:
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## epbs #1193 +/- ##
==========================================
+ Coverage 71.95% 72.10% +0.15%
==========================================
Files 168 168
Lines 33797 33892 +95
==========================================
+ Hits 24317 24439 +122
+ Misses 9480 9453 -27
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
@claude, thanks, good catch. Addressed in
The #1052 deployment condition is tracked in milestone 9 and this PR’s Blockers section: any Alan deployment containing #1192 must include #1052 or an equivalent fix; Boole-only ePBS deployments do not require it. Validation: 112 |
|
Claude finished @shane-moore's task in 1m 13s —— View job Follow-up review — commit
|
|
local-testnet is failing cuz of #1050, so we need to resolve that first |
4387e80 to
469598c
Compare
jnhsigmap
left a comment
There was a problem hiding this comment.
this is a nice simplification, with the trade-offs as you have mentioned. all good if this is the desired direction 👍
|
merge conflicts are trivial |
Problem, Evidence, and Context (Required)
NetworkMessageSender::do_sendreused the inboundValidator, so outbound self-validation mutated shared duty and duplicate state before slot routing and network enqueue. If routing or enqueue then failed, a later re-emission could be suppressed even though the original message never reached the wire.Closes #1192.
Change Overview (Required)
validate_outbound, a stateless preflight that decodes the envelope, checksSignedSSVMessagestructural invariants, parses the role, and returns the nested routing slot.ValidatorandDutiesProvidercoupling fromNetworkMessageSender.Risks, Trade-offs, and Mitigations (Required)
Validation (Required)
cargo test -p message_validator -p message_sender, 112 validator tests passed.cargo check -p client.make cargo-fmt-check.make lint, full workspace clippy with warnings denied.Rollback (Required for behavior or runtime changes; optional otherwise)
Revert the commit. There are no data migrations, configuration changes, or persistent state changes.
Blockers / Dependencies (Optional)
#1052, or an equivalent fix, is conditionally required only for deployments whose active SSV fork is still Alan.