Conversation
|
Could you merge |
|
Found a few issues while testing with pluto, so converted to draft |
Code ReviewSummaryThis PR adds the Findings[Critical] Cargo.toml workspace path typo — build errorImpact: The workspace will fail to build because the path points to a non-existent directory. [High] Max message size mismatch: parsigex uses 16 MB, Go uses 128 MBImpact: Any cluster where a [High] Handler only processes one inbound stream at a time — silent drop under concurrencyImpact: If a second inbound stream is fully negotiated while the first is still being read/verified, [Medium]
|
| Component | Go | Rust | Match | Notes |
|---|---|---|---|---|
| Protocol ID | /charon/parsigex/2.0.0 |
/charon/parsigex/2.0.0 |
yes | |
| Wire format | protobuf length-delimited | protobuf length-delimited | yes | |
| Max message size | 128 MB | 16 MB | no | See High finding above |
| DutyType integer mapping | 0–13 | 0–13 | yes | |
| Empty data set rejection | yes | yes | yes | InvalidParSignedDataSetFields |
| Duty validity check on recv | yes | yes | yes | duty_gater |
| Per-entry signature verification | yes | yes | yes | verifier callback |
| Concurrent inbound streams | yes (goroutine per stream) | no (single slot) | no | See High finding above |
| BuilderProposer rejected | yes (deprecated) |
yes (DeprecatedBuilderProposer) |
yes |
Tests
Tests were not run locally. The example (crates/parsigex/examples/parsigex.rs) provides an integration-level smoke test for the broadcast path but requires a live multi-node setup. Unit tests for encode_message/decode_message round-trips and codec edge cases (empty set, unknown duty type, oversized message) appear absent — these would be worth adding.
Open Questions
- Is the 16 MB cap intentional (memory-safety limit) or an oversight vs. Go's 128 MB?
- Was
.with_quic_enabled(true)on the relay node builder intentional? The other threeNode::new_*builders in the same file were not changed. SignedDataError::Customis only added insigneddata.rsbut never constructed in this PR — is it intended for follow-up work, or can it be deferred?
No description provided.