mina-delegation-program-tech

Mina Delegation Program Tech

Overview

This top-level repository serves as a central tech hub for the Mina Delegation Program, a comprehensive system designed to facilitate and manage the delegation program within the Mina blockchain network. The program comprises several key components, each with its specialized role in ensuring the efficiency and integrity of the delegation process. These components include:

  1. Uptime Service Backend (Repository): This service is responsible for collecting submissions from block producers within the Mina network. It acts as the primary data gathering endpoint, ensuring that submissions are timely and accurate for further processing. The data is gathered in Amazon Keyspaces and AWS S3.

  2. Uptime Service Validation (Coordinator) (Repository): Often referred to as the Coordinator, this component analyzes the submissions gathered by the Uptime Service Backend. Its primary function is to construct a delegation score based on the analyzed data.

  3. Stateless Verification Tool (Repository): This tool is essential for maintaining the integrity of submissions. It performs stateless verification against each submission to ascertain its validity. This verification process is critical in ensuring that only legitimate and accurate data influences the delegation scores.

  4. Submission Updater (Repository): This is a wrapper over the Stateless verifier tool that is responsible for communication with Cassandra or PostgreSQL, depending what it set as submission storage. It will select a range of submissions from the database, feed stateless_verifier_tool with it, collect results and update submissions with gathered data. Typically submission_updater and stateless_verifer_tool are packaged into single docker image and work together as one component of the system.

  5. Leaderboard UI (Repository): Website presenting block producer’s availability scores.

  6. Submission Report (Repository): Web application that provides an interface for querying and displaying report details for block producer submissions over specified time periods.

Testing

As the overarching repository, this is also the home for end-to-end/system and load tests that validate the entire system’s functionality. These tests are crucial for ensuring that each component of the Mina Delegation Program interacts seamlessly and performs as expected. A robust testing approach helps in identifying potential bottlenecks and ensures that the system can handle real-world use cases efficiently.

For recent test results go to Test Reports page.

E2E Tests

See E2E Tests.

Load Tests

See Load Tests.

Notes on Testing

By following these steps, contributors and developers can effectively run end-to-end tests on the Mina Delegation Program, ensuring its robustness and reliability.