Event Lifecycle
User Event Lifecycle
This section outlines the lifecycle of a user event within the protocol. Each step is crucial in ensuring a seamless and secure transmission of data.
-
Initiation of Event: The lifecycle of an event initiates with a user action. e.g. sending a message, joining a channel, etc.
-
Payload Construction: Following the user action, a payload is constructed that describes the desired action. For specific payload types, such as messages, encryption is applied.
-
Reference to Previous Mini Block Hash: Each payload includes a reference to the hash of the preceding mini block, establishing a link in the chain of events.
-
Signing the Event: The user signs the payload, thereby converting it into an event. This step is crucial for validating the authenticity of the event.
-
Transmission via RPC: The event is then transmitted to a client-connected node using Remote Procedure Call (RPC) protocols.
-
Routing Event Based on StreamId: Upon receipt, the node routes the event to a responsible node. This is determined through a Stream Registry lookup of the specific StreamID associated with the event.
-
Validation by Responsible Node: The responsible node performs several checks: it validates the event signature, verifies entitlements, and conducts other consistency checks, including verifying the reference to the recent mini block hash, as dictated by the protocol settings.
-
Propagation or Rejection: If the event passes all checks, the responsible node propagates it to other nodes associated with the same StreamId. If the event fails any check, it is rejected.
-
Reception and Verification by Other Nodes: Other nodes receiving the propagated event repeat the validation checks. Future updates may allow for the postponement of these checks when a validation gadget is active.
-
Local Commitment and Mini-Pool Placement: Each node commits the event to its local storage and places it in the mini-pool data structure for the respective stream. The order of events in mini pools may vary across responsible nodes, with reconciliation occurring at the time of mini block creation.
-
Mini Block Creation: In sync with the river chain block time, open mini pools are visited to produce a mini block. This process is integral to maintaining the continuity
Was this page helpful?