Repository navigation
Wire Protocol #639
Description
Activity
coderabbitai commented
on Jun 1, 2026 coderabbitaiboton Jun 1, 2026 – with coderabbitaiContributorMore actions🔗 Related PRs
#256 - feat(materialization): complete Phase 3 with FinalizeReport and cross-platform DIND [merged]
#263 - feat(echo-cas): content-addressed blob store (Phase 1) [merged]
#326 - Echo contract hosting roadmap [merged]
#382 - 0024 universal LE binary codec + 0025 sessions design (design-only) [merged]
#388 - docs(method): add backlog cards and hook failure note [merged]
📝 Issue Planner
Check the box below or use the
@coderabbitai plancommand to generate an implementation plan and prompts that you can use with your favorite coding assistant.- Create Plan
🧪 Issue enrichment is currently in open beta.
You can configure auto-planning by selecting labels in the issue_enrichment configuration.
To disable automatic issue enrichment, add the following to your
.coderabbit.yaml:issue_enrichment: auto_enrich: enabled: false
💬 Have feedback or questions? Drop into our discord!
- addedenhancementNew feature or requestNew feature or requestrelease:continuum-stackContinuum stack convergence release workContinuum stack convergence release work
on Jul 3, 2026 Re-homing to Echo: this deep-storage/CAS blob wire protocol is implementation/runtime work. Continuum can later coordinate a compatibility profile if the runtime proof needs one.
coderabbitai commented
on Jul 3, 2026 coderabbitaiboton Jul 3, 2026 – with coderabbitaiContributorMore actions🔗 Related PRs
#256 - feat(materialization): complete Phase 3 with FinalizeReport and cross-platform DIND [merged]
#263 - feat(echo-cas): content-addressed blob store (Phase 1) [merged]
#326 - Echo contract hosting roadmap [merged]
#382 - 0024 universal LE binary codec + 0025 sessions design (design-only) [merged]
#388 - docs(method): add backlog cards and hook failure note [merged]
📝 Issue Planner
Check the box below or use the
@coderabbitai plancommand to generate an implementation plan and prompts that you can use with your favorite coding assistant.- Create Plan
🧪 Issue enrichment is currently in open beta.
You can configure auto-planning by selecting labels in the issue_enrichment configuration.
To disable automatic issue enrichment, add the following to your
.coderabbit.yaml:issue_enrichment: auto_enrich: enabled: false
💬 Have feedback or questions? Drop into our discord!
- addedlane:cool-ideasMethod lane cool-ideas.Method lane cool-ideas.legend:platformMethod legend platform.Method legend platform.
on Jul 3, 2026
Migrated from Method backlog
This issue was created from a legacy filesystem backlog card. GitHub Issues are now the live work tracker; repository docs remain Method evidence.
Source backlog:
docs/method/backlog/cool-ideas/PLATFORM_deep-storage-wire-protocol.mdOriginal lane:
cool-ideasOriginal legend:
PLATFORMOriginal backlog card
Wire Protocol
WANT/PROVIDE/FRAME message types for network-level blob exchange between peers.
T-5-3-1: Message type definitions and binary encoding
User Story: As a developer, I want a compact binary wire format for blob exchange so that peers can request and transfer blobs efficiently.
Requirements:
Want { hash: BlobHash },Provide { hash: BlobHash, size: u64 },Frame { hash: BlobHash, offset: u64, data: Vec<u8> },Have { hash: BlobHash },Error { code: u16, message: String }.encode(&self) -> Vec<u8>anddecode(bytes: &[u8]) -> Result<Message, WireError>for each type.decode).Acceptance Criteria:
decode(encode(msg)) == msgfor all message types.decodeof truncated bytes returnsWireError::Incomplete.decodeof a message exceeding 1MB returnsWireError::TooLarge.Definition of Done:
Scope: Message type definitions, encode/decode, golden vectors, error types.
Out of Scope: Transport layer (TCP/WebSocket). Connection management. Authentication.
Test Plan:
Blocked By: none
Blocking: T-5-3-2
Est. Hours: 5h
Expected Complexity: ~300 LoC
T-5-3-2: Request/response protocol and backpressure
User Story: As a developer, I want a protocol state machine that handles blob exchange with flow control so that network transfers do not overwhelm memory.
Requirements:
BlobExchangestruct manages the protocol state: pending wants, in-flight provides, received frames.request(hash)enqueues aWant. When aProvidearrives, sendWantagain to confirm (pull model).Want, check local store and sendProvide(orError::NotFound). On confirmedWant, streamFramemessages.max_concurrent(default 16).Framechunks for a hash untiloffset + data.len() == size, then callput_verified.Acceptance Criteria:
max_concurrent=16results in 16 active wants, 16 queued.CasError::HashMismatch.Definition of Done:
Scope: Protocol state machine, backpressure, frame reassembly,
put_verifiedintegration.Out of Scope: Transport binding (TCP/WS). Discovery/peer management. Encryption.
Test Plan:
Blocked By: T-5-3-1
Blocking: none
Est. Hours: 6h
Expected Complexity: ~350 LoC