Replies: 3 comments 2 replies
-
|
@ariznode thanks for taking the time to write this up; I'll attempt to address your questions but please bear in mind that some of this is subject to change as Miden and its requirements progress. aka these are just our/my current thoughts on these topics. I'm going to give a brief overview of our current implementation and our short-medium term goal in terms of architecture and then I'll answer your questions and requests directly afterwards (there will be some overlap). Our node implementation consists of several distinct components that communicate with each other using gRPC:
These components can be run separately, or as a single process for convenience/testing purposes. The prover is implemented as a separate binary. You can find an infrastructure architecture diagram here: https://docs.miden.xyz/miden-node/operator/architecture. Notably the RPC component can be scaled horizontally. Miden is currently centralized, and will likely remain so in the short-medium term. The long term decentralization plan is quite vague while we focus on getting the core technical details figured out. No formal decisions on consensus or p2p etc have been made. Q&A
There isn't a short term need to fully sync state since users/dApps/clients should really only need the state they rely on. And this can be sync'd using the miden client which in turn fetches the data from the node's RPC component. Or put differently, in the short-medium term we don't see a need for additional RPC throughput given the client side focus of Miden, and the current centralized nature. We do provide full raw block data via gRPC if anyone does wish to mirror the public state or build an indexer. Some additional discussion here: #1369.
As mentioned above, this is already mostly the case. At present components can be run separately and communicate via gRPC.
The prover is currently CPU only, e.g. our testnet prover runs on a ~64 core machine and produces reasonable sized proofs in around 1s. I'm not entirely sure about GPU support; not really my field of expertise :) @bobbinth? |
Beta Was this translation helpful? Give feedback.
-
|
Thanks for the detailed reply, that clears up a lot. I just have a few follow-ups based on what you explained.
A couple of things I wanted to clarify:
One thing I’d like to confirm:
And regarding the prover:
Happy to help draft proposals or test infrastructure if needed. |
Beta Was this translation helpful? Give feedback.
-
|
Appreciate the insights! That answers all my questions for now. Closing the discussion. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
1. Background
Currently, the Miden node operates as a bundled, monolithic node that performs all core functions locally: block production, validation, state updates, and proof generation.
For broader ecosystem development, scaling, and decentralization, there is a growing need for:
Supporting these capabilities would greatly improve flexibility, performance, and the ability to distribute workloads.
2. Current Limitations
No state synchronization mechanism
A new node must bootstrap from genesis, which becomes increasingly expensive as the chain grows.
There is currently no:
Node roles cannot be separated
A single Miden node instance performs all functions. For scalable infrastructure, a more modular design would be useful:
3. Questions & Feature Requests
4. Why This Matters
Introducing state sync and modular roles would enable:
5. Request to the Miden Team
Could you please clarify:
If documentation or drafts exist, the community would be glad to contribute.
(edited by @Mirko-von-Leipzig - only structural markdown edits i.e. using bullet points and headings, no content/text was altered - I hope you don't mind @ariznode, I thought it would be easier to address your points this way)
Beta Was this translation helpful? Give feedback.
All reactions