openmina / mina-frontend

mina-frontend is an Angular web application that is showing node's progress, logs and statistics.
Other
1 stars 0 forks source link

As a Mina user, I am interested in an article about Decentralized SNARK worker. #71

Open JanSlobodnik opened 1 year ago

JanSlobodnik commented 1 year ago

Newest update (28th August):

https://docs.google.com/document/d/1cmk2KjYY_DUAviVPTYr_o4O1gD2ug7tD1eI_2UcgpCw/edit?usp=sharing

I've rewritten the Scan State illustrated guide with diagrams to show a demonstration of how the scan state is filled, using an example where maximum amount of trees = 6, work delay = 1, max number of transactions per tree = 8. These values were chosen arbitrarily for the sake of simplicity and explaining the concept, they can be changed.

Diagrams are based on how binary trees look like in the UI's light mode. For substack, where we have a black background, I might create alternative diagrams in dark mode.

The goal is to create an explanation not only for our UI, but also for the Scan State as a whole - my ambition is to create a document that will be the go-to reference for anyone who wants to understand how Mina's Scan State works.

I've also written a guide explaining the latency and throughput issues in the scan state. Here the goal is to not only explain these concepts, but also to connect the readers understanding of the Scan State UI with the high level diagrams from part 1 of this article.

Links:

Part 1 of Article (High level overview w/ diagrams):

https://docs.google.com/document/d/1BVKA-rMn7m-HEeM2e42wC32p4y5mLO57qpx85v6-FIw/edit?usp=sharing

Part 2 of Article (Scan State explanation, Front End and User guide):

https://docs.google.com/document/d/1cmk2KjYY_DUAviVPTYr_o4O1gD2ug7tD1eI_2UcgpCw/edit?usp=sharing

Notes from testing front end

https://docs.google.com/document/d/1-ofsCrKrvA37GEfeKZSVnWfho0F0g1yo6vDA18_HUZc/edit?usp=sharing

Diagrams only (editable):

https://drive.google.com/file/d/1BHeC6i9nwatFv5e7tYSE13Z_Qk2oXR29/view?usp=sharing

Figma Link (animations):

https://www.figma.com/proto/YjfZhPpZeWoBe3Hxt31QTy/Animations-%26-Ills?page-id=0%3A[…]ing-point-node-id=852%3A10923&show-proto-sidebar=1&mode=design

Glossary of terms in Mina)

https://docs.google.com/document/d/18JSUuRIJg6xnWXUWd9lfjSg0FcQcxngIiveXatso7Ls/edit?usp=sharing

  1. June - began writing first draft 28th June - diagrams added 3rd July - Updated diagrams, rewrote intro 10th July - rewrote "life cycle of snark", redesigned diagrams 17th July - updated text based on calls w/ Bruno, Lukas added re-designs of diagrams, added diagram for recursive composition 24th July - cleaning up comments, preparing notes for meeting with Lukas to finalize diagrams and animations, implementation details are due this week, FE will likely follow

31st July - polishing diagrams and animations with Lukas. Still waiting on BE/FE to be finalized for article, as well as setup guide. In the meantime I have been testing the front end and making some suggestions with Teo.

Past updates

7th August - articles are split, diagrams for article 1 are complete. 14th August - finished text of part 1 - now only diagrams remain. Need finalized UI and setup guide for completion of part 2. In the meantime, I am testing the front end.

21st August - part one of article is finished, part 2 is in progress. Im taking the opportunity of introducing readers to the concept of the Scan State - I've created a simplified visual explanation (Diagrams with text) of how the scan state is filled with new SNARK jobs and how it merges SNARKs to compress the representation's size.

We have split the article into two parts: 1) High level overview of SNARK work in Mina, with SNARK life cycle, diagrams, animations explaining the problem we are solving. This article is practically ready

2) Screenshots of Front End, with guide for users on how to use.

Article part 2 - implementation details must be clear, then it can be completed (same goes for diagrams).

As a side project, I have created a glossary of terms and concepts in Mina, including all of our front end. This is so far an internal document, but ultimately I would like to have it published somewhere so our users can consult it whenever they need more info while using our software. Link

Todo (currently working on):

article 1) High level overview of SNARKs, diagrams and animations

last animation to be done for tie-breaking mechanism in selecting snark jobs

article 2) our solution and implementation details + FE screenshots