Below are some updates on the various projects, tooling, and resources the Mina ecosystem and community have worked on over the last month.
*Please note that each ecosystem update may contain forecasts, projections, targets or other forward-looking statements. Such forward-looking statements are based on the relevant ecosystem partner’s estimates and assumptions based on information available at the time such update is made. Accordingly, plans, goals and other statements may not be realized as described, and actual results may differ materially from those presented in such an update. In addition, the Mina Foundation is not responsible for updates made by community contributors or ecosystem partners, whose work is important to the development of the Mina ecosystem and is independent from any of the initiatives that the Mina Foundation is working on.
Chainsafe — Lerna Jabourian, Project Manager
Chainsafe is working to make the network more resilient, via the reimplementation of Mina in Rust as a web node.
In terms of updates, we were able to finish Milestone 2, thanks to code reviews from the O(1) Labs team. Overall, we’ve been mainly focusing on performance and code quality-related changes for the last month on mina-rs and also integrating changes from the hard-fork, including:
- A few performance related refactors and pushing improvements to upstream dependencies
- Implementing reading the genesis ledger and accounts details in the Mina node
- Implemented a tool to ensure compatibility of the most recent Mina blocks from across the network
- Integrating changes from the recent hardfork into the mina-rs codebase
For a list of recently merged PRs, see our Github repo. We also always welcome anyone to reach out to us in terms of code reviews, suggestions and contributions.
Mina Foundation — Brian McKenna, Head of Product; Claire Kart, Head of Marketing; Christine Yip, Head of Community
The Mina Foundation is helping serve and support the Mina ecosystem, specifically by allocating resources, supporting network health and security, and supporting participants on their path to the Mina ecosystem.
Starting this month, we will be sharing updates as part of this blog so the community has a better understanding of what is being worked on by the Foundation.
Most recently, the Foundation is working with a team of community contributors on On-chain Signalling, to enable Block Producers to signal on-chain their support and readiness for a proposed hard fork upgrade.
On a high level, Phase 1 of the project has been delivered, which allows a Block Producer to submit a ‘voting’ transaction in the memo and also allows those results to be calculated and published via an API. The most recent progress includes:
- Set up Archive Node and created voting transaction
- Developed query to retrieve voting results from Archive Node
- Deployed backend to connect to Archive Node
- Made progress on frontend to display backend results
The next phase will be to calculate the votes on a stake-weight basis and make the API consumable by the community for release in parallel with the next testnet upgrade.
We’re excited to share that Mina will be at ETHMexico City from August 19-21! There will be a Mina Protocol booth with teams from across the ecosystem attending to support builders.
The global zkApps Developer Meetup tour is still ongoing, with successful meetups over the last 2 months that have concluded in Paris, Budapest, Berlin, Istanbul and Tel Aviv. We have met over 225 builders, community members and individuals wanting to learn more about Mina so far, and can’t wait to meet more.
Some upcoming meetups:
- London on July 30 @ 9:30AM UTC+1 (This is a community-hosted developer meetup and zero knowledge workshop by Extropy.io!)
- New York City on August 15 @ 6:30PM UTC-5
- Mexico City on August 18 @ 6PM UTC-5
There are many more in-person meetups in the next few months — check out the event calendar on the Mina Community page to see where we’re heading next!
zkApp Developer Resources
Creating supporting resources to make it really easy for developers who are new to Mina and zkApps to get started is important. We’ll start with identifying opportunities and places where we can add more educational resources, then decide on the format, and work on producing it. If you have any suggestions, feedback, or ideas, please let us know in the #zkapps-developers or #zkapps-general channel on Discord!
The team has also been working with different ecosystem contributors on a zero knowledge video series, which will soon drop on YouTube. Be sure to subscribe to the Mina YouTube channel so you can be notified.
Quarterly Community-Nominated Grants
The Mina Foundation deeply values all contributions and strives to recognize those who went above and beyond to make a significant impact on the Mina ecosystem, with community-nominated grants. Each quarter, community members who made invaluable contributions to Mina are receiving grants — including but not limited to tools, scripts, blogs, videos, newsletters, events, community-led groups, and more.
We set up a new process to help us better evaluate contributions and award QGP grants, and within a shorter period of about 2 weeks, we received 100+ nominations for the Q2 grants! We’re proceeding to the next steps and are asking members to fill out a questionnaire about their work, to make sure that we’re not missing anything and are recognizing members for their contributions.
The nomination form is open for any entries for the 2022 Q3 grants. Please nominate Mina community members who have been helpful to you/built something helpful that you’re using (ex. Block explorers, wallets, scripts, dashboards, tutorials, blogs, etc.) for a grant. Feel free to also nominate your own work – we want to recognize everyone’s contributions to the Mina ecosystem!
=nil; Foundation — Mikhail Komarov, Founder
For context, =nil; Foundation is working on bridging Mina to Ethereum and more.
Most recently, we’ve gotten to preparing the second phase of the audit — a proof system audit. This will certify that the auxiliary proof generator actually generates a valid Placeholder proof of successful Mina’s state proof verification. The third and last phase of the audit will be an in-EVM verification part audit, so after it is done, the project will enter its production-ready stage.
We’re also experimenting with reducing the circuit size which has to be proved by exploiting a «tick-tok» nature of Mina’s state proof recursion. In case that works, the verification cost will reduce. Third of all, we’ve put together all the architecture and a roadmap to make Mina’s bridge a bi-directional one (and more).
Some key milestones reached recently include:
- Auxiliary proof generation performance improvements because of the massive parallelization introduction (via special parallelization-exploiting version of a cryptography suite of ours: e.g. https://github.com/NilFoundation/actor-zk). Takes almost 5 times less time now.
- Potential verification cost reduction (because of the tick-tock nature of Mina’s state proof recursion I mentioned earlier). Not sure about the numbers for now, but it all depends on if we figure this out with O(1) Labs team members.
I would say that one of the most important commits made this month is about introducing Mina’s Kimchi proof system-based IR support for the circuit definition framework of ours. This enabled us to move towards simplification of Mina’s state proof verification circuit (less verification cost) and made the code more suitable for the audit.
O(1) Labs — Emre Tekisalp, CEO
Improving Node Stability
The latest beta release 1.3.2beta1 has been out for almost a month and is being tested on devnet. The last stable release, 1.3.1, has been running smoothly on Mainnet for well over two months. We’ve been focused on shipping performance improvements and addressing outstanding issues. We hope to promote 1.3.2 to stable in the coming weeks.
Berkeley QA Network
The Berkeley QA Network is ongoing and the QA task force is diligently participating and helping to address issues that occur. In the past month, we’ve redeployed the Berkeley QA Network and with the help of the community, found an issue. As a result, there has been some operational downtime on the QANet; however, O(1) engineers have identified the root cause and are working to roll out the fix. If you would like to participate in the QA network please chime in on the #devnet channel on Discord. We plan to make a few more redeployments to the QA network in the coming weeks so look out for more enhancements and fixes.
zkApp Protocol Readiness
O(1) Labs has worked on implementing key zkApp protocol features such as support for tokens, supporting zkApp events & sequence events, and zkApp composability (one zkApp calling another.) As we near feature completion, we are working on finalizing the acceptance criteria for each aspect of the protocol. The O(1) Labs engineering and testing teams have created a suite of acceptance tests and are writing test cases using sample zkApps.
SnarkyJS & zkApps
zkApp proving performance is now 200%-1,000% faster for non-recursive use cases!
The O(1) Labs’ engineering team recently added support for preconditions, recursion, and events to SnarkyJS. Preconditions are available now; recursion & events will appear in the next release of SnarkyJS. Developers will be able to make use of these features on Berkeley Testnet. We’re currently writing documentation for these to be published on docs.minaprotocol.com in the coming weeks. Follow the new SnarkyJS changelog to see detailed updates as they occur.
While a draft Rust API for Kimchi was released some time in June via the proof-systems repo, the decision was made to restructure the API to align the interfaces with the proven Snarky (oCaml) circuit writing API, which is used throughout the Mina protocol. While this change will delay the release of an API for Kimchi, it will improve the maintainability and will result in a cleaner transition to future Rust versions of Pickles and Snarky.
We’re thrilled to have welcomed a very talented Rust engineer with a background in MPC research who will be leading the implementation on zkOracles. In his first few weeks onboarding and ramping up on the project he has identified a few potential optimizations. We’ll continue to iterate on the design for zkOracles and look forward to beginning implementation work in the near future. In the meantime, the SnarkyJS team is working on an alternative oracle approach for developers to consume data from external sources within a zkApp in the near term.
ONTAB — Behzad Malek, CEO
Ontab has been working on the new uptime tracker for the Mina Foundation Delegation Program.
Within the last month, a beta version of this new uptime tracker was released, which scores block producers’ uptime based on their SNARK worker activity, instead of sidecar data.
The 3 major changes included in the new uptime tracker:
- We look at verified submissions only.
- We only accept submissions with the state_hashes that more than 34% of the community agrees on.
- We finally account for submissions with state_hashes that are close (weight <=2) to the canonical blockchain in the last 90 days.
In other exciting news, we also released notes on the SNARK-based uptime tracking system API, which can enable Mina ecosystem participants and community members to access in data from the new uptime tracking system and incorporate into tools and services like community built leaderboards.
We would like to collect feedback on the new uptime tracker and the API from the community, to continue improving on them. Please share any feedback with us on the #delegation-program channel on Mina’s Discord.
Mina Notifier Bot — EA#0741
Created by community member EA#0741, MinaNotifierBot is a Telegram bot for MINA blockchain monitoring, which supports a huge variety of functions.
In terms of its capabilities, the bot is similar to the explorers, while being a more convenient personalized tool. The bot solves the problem of informing users about events taking place in the Mina Blockchain in the most convenient way for the user. It is a product for the community, and I hope it helps the stable and healthy growth of the ecosystem as a whole. It also provides transparency and information support for the project and simplifies the experience for new users.
The bot was released in the mid-June with some basic functionality:
- ability to add any user address to monitoring and view address info and manage settings
- notifications about sending or receiving tokens
- delegation notifications
- whale alerts and ability to set custom thresholds
- general settings management
- ability to contact bots’ developers on any questions
zkRollup on Mina — trivo#0001
Community member Trivo#0001 (who is also a zkApps Builders Program cohort 1 participant) is working on a zkRollup for Mina.
The first step of the zkRollup is to develop and provide a framework that gives developers the power to leverage fast performance while still maintaining Mina’s amazing privacy and succinctness properties.
The main goal of a rollup is to batch a lot of transactions into a single one, while still maintaining the security and decentralization of the underlying layer 1 — which in our case is Mina. Developers will be able to use the rollup as easily as any other framework or developer tooling, so the developer can focus on the important part — building the actual application — and not worry about throughput (tps), performance and any associated problems and hurdles that come with it. End users will be able to use any application built on top of a rollup without any additional hurdles while being exposed to increased performance which results in much better user experience.
A lot of the work over the recent weeks has been going on in the background and on the design side. I have gotten myself more comfortable with the recently released «recursion-API», which will allow any rollup or application on Mina to easily merge SNARK proofs recursively (the part that other projects are still actively working on, but it is available on Mina NOW!). On the design front I have evaluated different possibilities of scaling the rollup and tried running a few (very) early benchmarks to get myself a better overview of what it will take to increase transaction throughput. One PR that I can point out is this one. In this PR I started to refactor major parts of the repository, do a lot of cleanup and needed documentation.
As I continue working on this, I welcome other community members to engage in discussions, ask questions and give feedback!
Community-Organized Developer Meetup & Workshop with Extropy.io — Karol#4597
Karol#4597 is a community member who has organized a developer meetup and zero knowledge workshop in London, which will take place this week on July 30 at 9:30AM UTC+1. Spots are open still, sign up to attend.
My goal is to increase the adoption of ZKPs and the Mina Protocol. I strongly believe that if more people would understand how the ZK technology work, they would see more clearly the potential that the protocol unlocks. In order to achieve that goal, I mainly focus on two areas: community education and zkApp development. Working at Extropy, alongside ZK experts, allowed me to often combine the two.
Recently we have run an online meetup, focusing on zkApps development. This Saturday (July 30), the first community-run workshop/developer meetup is being organised to allow anyone to learn more about the technology. This is an in-person meetup that will take place in London. We would love for people to join, and to give feedback about the content (what was clearly explained, what wasn’t) and the event itself.
I saw a lack of such meetups run by the community so I thought to give it a try, and hopefully, inspire others to do so as well! If someone is interested in wanting to organize a similar meetup, I would suggest to start by engaging with the community on the Mina Discord channels and getting familiar with the resources and documentation.