Follow-up from the dynamic-ssz migration (ssvlabs/ssv-spec#643); node-layer / SIP-#94 concern, not that PR itself.
Gloas (EIP-7916) makes the affected SSZ lists progressive — no fixed capacity. That's correct per spec, but it means the Gloas consensus values (block body, execution-payload envelope, execution requests, attestations) no longer carry a static SSZ size bound the way pre-Gloas containers did. The size limits that guard against oversized / DoS consensus messages need Gloas-aware bounds:
- ssv-spec's
types/spectest/tests/maxmsgsize has no Gloas coverage — the max-size derivations stop pre-Gloas.
- The node's message-validation size caps (
message/validation/const.go) should get explicit Gloas worst-case bounds so a peer can't send an unboundedly large Gloas consensus value.
Task: define sane upper bounds for the Gloas consensus values and add maxmsgsize coverage for them.
Refs: ssvlabs/ssv-spec#643 (SSZ migration), #3014 (migration tracker).
Follow-up from the dynamic-ssz migration (ssvlabs/ssv-spec#643); node-layer / SIP-#94 concern, not that PR itself.
Gloas (EIP-7916) makes the affected SSZ lists progressive — no fixed capacity. That's correct per spec, but it means the Gloas consensus values (block body, execution-payload envelope, execution requests, attestations) no longer carry a static SSZ size bound the way pre-Gloas containers did. The size limits that guard against oversized / DoS consensus messages need Gloas-aware bounds:
types/spectest/tests/maxmsgsizehas no Gloas coverage — the max-size derivations stop pre-Gloas.message/validation/const.go) should get explicit Gloas worst-case bounds so a peer can't send an unboundedly large Gloas consensus value.Task: define sane upper bounds for the Gloas consensus values and add
maxmsgsizecoverage for them.Refs: ssvlabs/ssv-spec#643 (SSZ migration), #3014 (migration tracker).