Realizing the Mina vision in Rust

Announcing a new grant from the Mina Foundation

But what is Mina?

Mina is the world’s lightest blockchain that creates a private gateway between the real world and crypto. Mina does not rely on expensive hardware like many larger blockchains; instead, it uses an advanced cryptographic technique called recursive zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) to ensure scalability and privacy.

The Mina Networking Stack

Mina uses go-libp2p to implement its networking stack. libp2p is “a modular system of protocols, specifications and libraries that enable the development of peer-to-peer network applications.” On a basic level, libp2p provides tools and infrastructure to construct trust-less systems. Mina’s reference implementation is written in OCaml, while the networking helper is in Go. The daemon sends encoded messages to the libp2p helper detailing what it wants the helper to do. The helper can also send messages back to the daemon using upcalls. Through these processes, the network’s OCaml and Go side can communicate with each other.

Our Other Work on Mina

Initially, the ChainSafe team was focused on auditing and improving the go-libp2p network stack. The team was then able to identify opportunities for optimization and further development relating to the usage of go-libp2p and communication between nodes.

The Road to Mina

Moving forward the team has set out 4 overarching milestones to be completed for the new Mina implementation.

1. Serialization and block verification.

This will involve implementing the serialization primitives used in the current protocol with the ability to extend the functionality for custom types. During this process, the team will also implement the block verification and the associated proof that comes with each block.

2. Block selection logic.

The team will then introduce logic to the rust implementation to choose the canonical, most valid block, based on chain strength. This is so we can follow and track the best block on the chain.

3. Ledgers and additional state.

After that, the team will enact the ability to store and update the account database so that all the data can be stored effectively and securely.

4. Libp2p support

Finally, in the last milestone, the team will implement a JavaScript component to request and receive blocks from all other nodes on the Mina network, using libp2p-js. The next step will be to support the submission of transactions via a gossip system, in order to increase communication efficiency and range. The last step involving libp2p will be to validate and support compatibility with browser environments so that Mina can be accessed from virtually anywhere.

Get to know more

To learn more about Mina, be sure to visit their website!

Follow Kingsman Ventures Media!

Medium | Telegram | Twitter | Website | Bitclout | Facebook

Kingsman Ventures is a venture focused on strategies related to growth hacking projects. We incubate, advise, fund, and support blockchain projects with all our