Liveness Service Manager
Overview
The purpose of this contract is to facilitate the management of clusters, rollups, and tx_orderers in a decentralized system. It provides the ability to organize clusters, where each cluster contains rollups, and the rollups are coordinated by tx_orderers. The contract ensures security, modularity, and upgradability using industry-standard libraries.
This system is designed to be highly customizable, allowing owners to define and manage their clusters, control rollups, and ensure proper registration of participants such as tx_orderers and executors.
Key Concepts
Clusters A cluster represents a logical grouping managed by an owner. Within a cluster, there are limits on how many participants can be active at any time. The cluster owner is responsible for configuring the cluster and ensuring proper operation.
Rollups Rollups are components within clusters that process transactions. They carry specific properties, such as types, transaction encryption methods, and validation mechanisms. Rollups also support executors who perform specific operations within the rollup.
Tx_orderers Tx_orderers are responsible for ensuring liveness and ordering of operations within clusters. Each cluster has a fixed capacity for tx_orderers, and new participants must register to fill available slots.
Process Overview
Contract Setup
The contract is designed to prevent unauthorized modifications. It starts in an uninitialized state and must be explicitly initialized before it can be used. During this initialization, important configurations and security mechanisms are set up to ensure safe and secure operation.
Cluster Management
One can create a new cluster by defining its unique identifier and specifying how many tx_orderers it can support. Once a cluster is created, it is ready to have rollups added and participants registered. Clusters are fully owned and controlled by their creators, ensuring that no unauthorized entity can make changes.
Adding Rollups
To expand the functionality of a cluster, rollups can be added by the cluster owner. Each rollup is uniquely identified and comes with specific configuration details. These include its type, the transaction methods it supports, and validation rules. Additionally, an executor—a participant responsible for executing the transactions—can be assigned during the setup process.
Currently, the ValidationServiceManager
contract address is emitted during this process. This contract serves as a critical component for coordinating the network, its operators, and associated vaults. It is also responsible for defining stake limits, managing rewards, and enforcing slashing conditions to maintain network integrity.
The details of the ValidationServiceManager.sol
contract, which is a part of the symbiotic-middleware-contract framework, will be explained in the next section. This explanation will provide further clarity on its role in ensuring efficient and secure operations within the network.
Registering Participants
Clusters require tx_orderers to ensure operations run smoothly. When a new participant wants to join as a tx_orderer, they must register with the cluster. This process checks for available slots and ensures that the participant has not already been registered. If successful, the tx_orderer is assigned a position in the cluster.
Deregistering Participants
A tx_orderer can be deregistered if needed. This process involves removing their association with the cluster or rollup and making their slot available for others.
Retrieving Information
The contract provides detailed visibility into its state. Owners and participants can query information about clusters, including the list of active tx_orderers, details about rollups, and registered executors. Additionally, participants can discover all clusters they are associated with, and anyone can retrieve a complete list of all cluster identifiers in the system.
How the System Ensures Integrity
Ownership-Based Control Only the owner of a cluster or rollup has permission to make changes, ensuring that unauthorized entities cannot interfere.
Limits and Validation The system enforces limits, such as the maximum number of tx_orderers per cluster, and validates input to prevent duplicate or invalid registrations.
Event Emission Every significant action, such as adding a rollup or registering a tx_orderer, triggers an event. These events create an immutable record that can be reviewed externally.
Fault Tolerance Deregistration processes are designed to handle cleanup gracefully, ensuring that the system remains consistent even when participants leave.
Use Cases
Managing a Decentralized Rollup Ecosystem A developer or organization can use this system to manage a decentralized network of rollups, assigning specific roles to participants and maintaining overall control.
Participant Registration It provides a structured process for participants, such as tx_orderers or executors, to join or leave clusters dynamically.
Real-Time Queries It lets accessing detailed, up-to-date information about clusters, rollups, and participants for decision-making or monitoring purposes.
Last updated