This repository contains the gRPC proto files for Mevton, a custom implementation of MEV (Maximal Extractable Value) infrastructure on the TON blockchain. These proto files define the services, messages, and methods used for communication between various Mevton components, such as the Block Engine, Validators, Searchers, and other integrated services.
Mevton is a specialized fork of the TON blockchain client with customizations to support MEV functionality. It allows Searchers to submit bundles of transactions to a Block Engine, which then emulates, auctions, and orders these bundles for inclusion in blocks by Validators.
This repository hosts the gRPC proto files used to define the communication interfaces between different components in the Mevton ecosystem.
Before you can generate code from these proto files, ensure you have the following tools installed:
- Protocol Buffers Compiler (protoc)
- gRPC plugin for your target language (e.g.,
grpc_python_plugin
for Python,grpc_cpp_plugin
for C++, etc.) - Your preferred language-specific package manager (e.g.,
pip
,npm
,cargo
, etc.)
Clone the repository to your local machine:
git clone https://github.com/mevton-labs/mevton-grpc-proto.git
cd mevton-grpc-proto
To generate gRPC code from the proto files, run the following command for your specific language:
protoc --proto_path=proto/ --<lang_out>=<output_directory> --grpc_out=<output_directory> proto/*.proto
Replace <lang_out> with the appropriate option for your language (e.g., python_out for Python), and <output_directory> with the directory where you want the generated code to be placed.
Example for Python:
protoc --proto_path=proto/ --python_out=./generated --grpc_out=./generated proto/*.proto
The proto files are located in the proto/ directory and include definitions for:
- block_engine.proto: Interfaces for communication between Validators and the Mevton Block Engine.
- searcher.proto: Interfaces for communication between Searchers and the Mevton Block Engine.
- auth.proto: Interfaces for Validators to authenticate themselves or for Searchers to raise the limits.
Each proto file contains detailed comments describing the purpose and structure of the services and messages defined.
We welcome contributions to this project! If you'd like to contribute, please follow these steps:
Fork the repository.
- Create a new branch (git checkout -b feature/your-feature).
- Make your changes.
- Commit your changes (git commit -am 'Add your feature').
- Push to the branch (git push origin feature/your-feature).
- Create a new Pull Request. Please ensure your code adheres to the existing style and that all tests pass.
This project is licensed under the MIT License - see the LICENSE file for details.