Resource

Overview of the New Uptime Tracker

Full technical specifications and release notes will be published at a later date.

The Delegation Program uptime tracker is the means by which the Mina Foundation determines who will receive Foundation delegations. After receiving feedback from the community about the program’s participation, performance tracking, and transparency, the Mina Foundation has worked on further improving the performance tracker in collaboration with ecosystem partners.

State of Affairs

Included in the Mainet Stable Release 1.2.0, the Mina Foundation Delegation Program client implementation was released for the new snark-work-based uptime tracking system. Currently, the uptime tracking system uses a sidecar, and the data it produces counts towards Mina Foundation delegation eligibility. This is due to several reasons.

The client implementation was released before moving over to the new uptime system so that delegators can get a head start on:

Work on the new uptime tracker has been done by Mina’s ecosystem partners O(1) Labs and OnTab. They have recently completed their server work, more specifically building the backend verification system that will be used to calculate scores. A preliminary version of the backend system has been completed and is being tested. 

How It Will Work

In the new uptime system, all delegator nodes must submit a JSON payload to a delegation program backend service. The JSON payload contains the latest block known to the node, the delegator node’s pubkey, and snark work related to the latest block and timestamp. Here is what the JSON submission will look like:

{ "data":

   { "peer_id": "<base58-encoded peer id of the node from libp2p library>"

   , "block": "<base64-encoded bytes of the latest known block>"

   , "created_at": "<current time>"

   // Optional argument

   , "snark_work": "<base64-encoded snark work blob>"

   }

, "submitter": "<base58check-encoded public key of the submitter>"

, "sig": "<base64-encoded signature of `data` contents made with public key submitter above>"

}

After submission, the payload goes through three stages of verification:

  1. Signature verification: The delegation backend does a signature check. If the signature passes and the delegator’s public key is registered in the Delegation Program, the payload will be saved on the server.
  2. Stateless verification: Next, a stateless verification tool will:
    1. deserialize the block and verify the block’s proofblock and compare the block producer key with the path
    2. check if the snark work is related to the block
  1. Stateful verification: Checks that the submitted block was either on the mainchain or on a well-populated short fork

In the previous system, the sidecar service checked to see whether each block producer was online in 10-minute intervals. The new system is configured for the delegator node to send a payload to the uptime service every 15 minutes. All submissions are processed in batches of 20 minutes worth of data. The uptime service checks the batches in 20-minute intervals, updating the leaderboard after processing all the submissions in the batch.

Codebase

The codebase for the new delegation backend service can be found here: https://github.com/MinaProtocol/mina/tree/develop/src/app/delegation_backend 

Next Steps

We are now in the final stages of rolling out the new uptime system and currently testing (QA and UAT) with ecosystem partners as well as block producers who have graciously agreed to share their logs with us. 

If you have any questions about the uptime system, let us know in the #delegation-program channel in the Mina Discord.

More from our Blog

Ecosystem Update / 2022-05-17 / Mina Ecosystem Contributors
Mina Ecosystem Roadmap – Q2 2022
This update, previously known as Product Priorities, is now renamed to the Mina Ecosystem Roadmap. These are quarterly updates intended to share what is being worked on by various Mina ecosystem teams - this is the update for Q2 2022.
Read more
Blog / 2022-05-13 / O(1) Labs
Winter 2022 zkApps Builders Program Wrap Up
Read more
Retro / 2022-05-10 / Mina Foundation
DevConnect 2022: A Collaborative Week of Events
Read more
Report / 2022-04-29 / Mina Foundation
Transparency Report — Q1 2022
Read more

About the Tech

AboutTechCta

Mina uses advanced cryptography and recursive zk-SNARKs to deliver true decentralization at scale.

Get Started

GetStartedCta

Mina makes it simple to run a node, build and join the community.