Expand description
The CTB broadcaster (docs/rhdl_ubft-ctb.md): upstream
tail-cb/broadcaster.hpp as a step kernel.
- Each message gets the next index and goes out as one data record to every receiver (the transport fans it out).
- Every message is kept for the tail. While the slow path is on, each kept message is digested, signed under the CTB context (role 2) and the signature sent, including messages admitted before the slow path was turned on (a late fallback must be able to decide them). A message pushed out of the tail before its signature is done is dropped from signing, as upstream, since no receiver still holds it.
- Every response carries
(slot, idx); a stale one is dropped. - No
throw: an index at the wrap guard is a fault and stops admission.
Structs§
- BcConfig
- One-time configuration.
- BcData
- The data record to send to every receiver.
- BcEntry
- A message in the tail, while it is being signed.
- BcIn
- Inputs.
- BcMsg
- A message to broadcast.
- BcOut
- Outputs.
- BcSig
Out - The signature record to send to every receiver.
- BcSign
Req - Sign the CTB context for
(slot, idx). - BcSigned
- A signature from the service.
- BcState
- State.
Functions§
- bc_step
- One cycle of the broadcaster.
- empty_
bc_ entry - A zero entry, for kernels.