Transport Messages

Wire Framing

Each frame uses:

[1 byte message type][4 bytes big-endian body length][JSON body]

Constraints:

  • max message body: 64 MiB

  • body decode uses JSON

  • oversized body length is rejected

Message Types

  • 0x01 msgDomainVerify

  • 0x02 msgOffer

  • 0x03 msgSegment

  • 0x04 msgAck

msgAck is sent by receiver after store.Write succeeds.

Error Semantics

Read/write paths return explicit errors for:

  • header/body read failure

  • message type mismatch

  • JSON decode failure

  • body size over limit

Outbound relay treats ACK timeout/mismatch as failed attempt.

Verification

GOWORK=off go test ./edge/transport -run 'TestWire|TestRead|TestWrite' -v
GOWORK=off go test ./edge/relay -run 'TestExecutor' -v

Evidence

Code:

  • edge/transport/wire.go

  • edge/transport/conn.go

  • edge/relay/executor.go

  • edge/cmd/edged/main.go (handleRelayConn)

Tests:

  • edge/transport/wire_test.go

  • edge/relay/executor_test.go

  • edge/cmd/edged/main_integration_test.go

See Also