Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 36 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,20 @@ This template provides a basic structure for building proof tasks that:

```json
{
"dlp_id": 19, // DLP ID is found in the Root Network contract after the DLP is registered
"valid": false, // A single boolean to summarize if the file is considered valid in this DLP
"score": 0.7614457831325301, // A score between 0 and 1 for the file, used to determine how valuable the file is. This can be an aggregation of the individual scores below.
"authenticity": 1.0, // A score between 0 and 1 to rate if the file has been tampered with
"ownership": 1.0, // A score between 0 and 1 to verify the ownership of the file
"quality": 0.6024096385542169, // A score between 0 and 1 to show the quality of the file
"uniqueness": 0, // A score between 0 and 1 to show unique the file is, compared to others in the DLP
"dlp_id": 19,
"valid": true,
"score": 0.85,
"authenticity": 1.0,
"ownership": 1.0,
"quality": 0.9,
"uniqueness": 0.8,
"attributes": {
// Custom attributes that can be added to the proof to provide extra context about the encrypted file
"total_score": 0.5,
"score_threshold": 0.83,
"email_verified": true
"email_verified": true,
"total_score": 0.75,
"score_threshold": 0.83
}
}
```

The project is designed to work with Intel TDX (Trust Domain Extensions), providing hardware-level isolation and security guarantees for confidential computing workloads.

## Project Structure
Expand All @@ -40,15 +38,24 @@ The project is designed to work with Intel TDX (Trust Domain Extensions), provid
- `Dockerfile`: Defines the container image for the proof task
- `requirements.txt`: Python package dependencies

## Getting Started
##Getting Started
To begin using this project:
1. Fork the repository:
Make a copy of this repository in your GitHub account.
2. Clone the repository:

To use this template:
``git clone https://github.com/volaradlp/validator.git
cd validator``
3. Build the Docker image:

1. Fork this repository
2. Modify the `my_proof/proof.py` file to implement your specific proof logic
3. Update the project dependencies in `requirements.txt` if needed
4. Commit your changes and push to your repository
``docker build -t volara-validator .``
4. Run the proof task:

```docker run --rm \
--volume $(pwd)/input:/input \
--volume $(pwd)/output:/output \
--env USER_EMAIL=user@example.com \
volara-validator```
## Customizing the Proof Logic

The main proof logic is implemented in `my_proof/proof.py`. To customize it, update the `Proof.generate()` function to change how input files are processed.
Expand All @@ -59,33 +66,17 @@ The proof can be configured using environment variables:

If you want to use a language other than Python, you can modify the Dockerfile to install the necessary dependencies and build the proof task in the desired language.

## Local Development

To run the proof locally for testing, you can use Docker:

```bash
docker build -t my-proof .
docker run \
--rm \
--volume $(pwd)/input:/input \
--volume $(pwd)/output:/output \
--env USER_EMAIL=user123@gmail.com \
my-proof
```

## Running with Intel TDX

Intel TDX (Trust Domain Extensions) provides hardware-based memory encryption and integrity protection for virtual machines. To run this container in a TDX-enabled environment, follow your infrastructure provider's specific instructions for deploying confidential containers.

Common volume mounts and environment variables:

```bash
docker run \
--rm \
```docker run --rm \
--volume /path/to/input:/input \
--volume /path/to/output:/output \
--env USER_EMAIL=user123@gmail.com \
my-proof
--env USER_EMAIL=user@example.com \
volara-validator
```

Remember to populate the `/input` directory with the files you want to process.
Expand All @@ -98,13 +89,19 @@ This template leverages several security features:
2. **Input/Output Isolation**: Input and output directories are mounted separately, ensuring clear data flow boundaries
3. **Minimal Container**: Uses a minimal Python base image to reduce attack surface

## Customization
## Development and testinng
Local Testing: Run proof logic locally for development:

Feel free to modify any part of this template to fit your specific needs. The goal is to provide a starting point that can be easily adapted to various proof tasks.
```python -m unittest discover```
2. Linting and Code Style: Use tools like flake8 or black to ensure code consistency:

```pip install flake8 black
black my_proof/```
## Contributing

If you have suggestions for improving this template, please open an issue or submit a pull request.
my suggestion and contribution


## License

Expand Down