Miden remote prover
A gRPC server which provides a service for proving either transactions, batches or blocks for the Miden blockchain.
This enables weaker devices to offload the proof generation to a beefy remote server running this service.
The implementation provides a configurable request queue and proves one request at a time in FIFO order. This is not intended to cover complex proxy setups nor load-balancing, but can instead be used as a starting point for more advanced setups.
The gRPC specification can be found in the Miden repository. Ensure you are viewing the appropriate version tag or commit.
Quick start
# Install the binary.
# and start as a transaction prover.
)
In a separate terminal, inspect the available services using grpcurl and reflection.
or query the status of the prover.
Installation
Debian package
Install the Debian package:
| |
|
Edit the configuration file /lib/systemd/system/miden-prover.service.env
Run the service:
From source
To build the service from a local version, from the root of the workspace you can run:
The CLI can be installed from the source code using specific git revisions with cargo install or from crates.io with cargo install miden-remote-prover.
Configuration
Quick start:
The prover can be further configured from the command line or using environment variables as per the help message:
> miden-remote-prover
;
)
Status, health and monitoring
The server implements the following health and status related gRPC services:
The server supports OpenTelemetry traces which can be configured using the environment variables specified in the OpenTelemetry documentation.
For example, to send the traces to HoneyComb:
OTEL_SERVICE_NAME=miden-remote-prover
OTEL_EXPORTER_OTLP_ENDPOINT=https://api.honeycomb.io
OTEL_EXPORTER_OTLP_HEADERS=x-honeycomb-team=<api-key>
A self-hosted alternative is Jaeger.
License
This project is MIT licensed.