input-output-hk / ouroboros-high-assurance

High-assurance implementation of the Ouroboros protocol family
Apache License 2.0
1 stars 1 forks source link

Specify the broadcast semantics of mini-protocol programs #95

Open jeltsch opened 9 months ago

jeltsch commented 9 months ago

We shall specify a semantics that translates mini-protocol programs into Þ-calculus processes, using broadcast communication for communication between parties. This semantics is only intended for programs that conform to some possibilities, which excludes programs that use pipelining.

Concretely, the broadcast semantics shall have the following characteristics:

  1. Communication is handled using a single medium for ordered transmission as described in input-output-hk/thorn-calculus#128.
  2. Each party maintains a single cursor, which is its receiving position within the ordered-transmission medium.
  3. Each party fetches all messages, also those that it has sent itself.
  4. The parties use their cursors also for sending.

Item 4 doesn’t cause problems, because of item 3: when a party has agency, it has received all messages, and consequently its receiving position coincides with the position that it should use for sending.

The broadcast semantics shall be subject to some additional constraints, which it shares with the multicast semantics described in #96: