#[repr(u8)]pub enum ProtocolModel {
Failure = 1,
Timing = 2,
Trust = 3,
Event = 4,
Media = 5,
}Expand description
The five formal protocol models of ELARA.
Every module must be explainable through these models. If a module cannot answer the model’s core question correctly, it is not part of ELARA core.
Variants§
Failure = 1
Failure Model: Failure is distortion, not termination.
Core question: “What is your failure model?” Valid answer: Distortion, not termination
ELARA assumes all failure conditions are normal:
- Extreme jitter
- Arbitrary packet loss
- Reordering, duplication
- Network partition
- Byzantine nodes
- Device death
- Clock drift
- Server death
Timing = 2
Timing Model: Time is local. Order is reconstructed.
Core question: “Whose clock do you depend on?” Valid answer: Local only, reconstructed order
Properties:
- No protocol decision depends on wall-clock correctness
- Causality > Timestamp
- Liveness > Consistency
- Reconstruction > Synchronization
Trust = 3
Trust Model: Identity is cryptographic, not topological.
Core question: “Where does trust come from?” Valid answer: Cryptographic continuity
Trust is built from:
- Continuity of keys
- Behavior history
- Event lineage
NOT from: IP, server, TLS channel, login session
Event = 4
Event Model: Event is truth. State is a story we tell about it.
Core question: “Where is your event-truth?” Valid answer: In signed, immutable events
Properties:
- Append-only reality
- Forks are legal
- Convergence is negotiated, not enforced
- History > Snapshot
Media = 5
Media Model: Media is perception, not data.
Core question: “If media has holes, what still lives?” Valid answer: Perception continues
Properties:
- Silence is valid media
- Approximation is first-class
- Prediction is legal
- Pipelines support stretching, concealment, hallucination
Implementations§
Source§impl ProtocolModel
impl ProtocolModel
Sourcepub fn compliance_question(&self) -> &'static str
pub fn compliance_question(&self) -> &'static str
Get the core compliance question for this model
Sourcepub fn valid_answer(&self) -> &'static str
pub fn valid_answer(&self) -> &'static str
Get the valid answer pattern for this model
Get the related Hard Invariant
Sourcepub fn all() -> &'static [ProtocolModel]
pub fn all() -> &'static [ProtocolModel]
Get all models
Trait Implementations§
Source§impl Clone for ProtocolModel
impl Clone for ProtocolModel
Source§fn clone(&self) -> ProtocolModel
fn clone(&self) -> ProtocolModel
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more