Skip to main content

Module reply

Module reply 

Source
Expand description

Full-response RPC aggregation and server emission (U29–U32).

Reference: original uBFT 504eba0835e02af6d384afec6c6c7073530fc11f, rpc/client.hpp:151–176,377–403 and rpc/server.hpp:152–174. The original counts messages without retaining sender identity, stores them in an unchecked five-element array, throws on X,Y,Y, and suppresses ID3. Here each bounded live request retains one immutable vote per configured authenticated sender. Equal lengths and every declared payload byte must match; bytes beyond length are ignored on input and zeroed on output.

TRUST BOUNDARY: Reply.sender must be stamped by an authenticated transport adapter, never copied from an untrusted packet field. ServerIn.executed must come from identity-preserving application execution, not admission or proposal acceptance. Neither composition is supplied by this module.

Configuration is accepted once. Reset retires this instance permanently; creating a fresh state requires an externally established session/drain fence. Request IDs start at configured first_request (including zero), are allocated consecutively, and never wrap. Retirement is in request order even if later requests finish first. This is bounded storage, not a fixed-size wire protocol: P is configurable and lengths may exceed 64 bytes. Allocation must precede its first reply by at least one edge: a same-edge reply for a newly allocated ID is discarded against the registered live set. The server adapter does not establish exactly-once execution; request IDs arrive from the trusted identity-preserving execution boundary.

Structs§

CollectorIn
Collector inputs.
CollectorOut
Collector outputs.
CollectorState
Collector registers; W is 1..=8 and N is odd, 1..=15.
Config
Frozen client/session and external server-ID map (N odd, 1..=15).
Entry
Per-request bounded collector entry.
Open
Allocation of one outstanding request, before replies can count.
Reply
A response with the namespace and authenticated transport source attached.
ServerIn
Execution-to-transport reply adapter configuration.
ServerOut
Server adapter outputs.
ServerState
Server adapter registers.
Vote
One distinct server’s first accepted reply.

Functions§

collect
One-cycle collector transition; no latency model or cryptographic oracle.
empty_entry
Empty collector entry.
empty_reply
Empty response, usable inside RHDL kernels.
serve
Every configured replica, including external ID3, emits executed replies.