Skip to content

Latest commit

 

History

History
121 lines (87 loc) · 2.83 KB

README.md

File metadata and controls

121 lines (87 loc) · 2.83 KB

Code Execution Blueprint for Tangle Network 🚀

📚 Overview

This Tangle Blueprint provides a secure code execution service that runs arbitrary code snippets in a Trusted Execution Environment (TEE). It supports multiple programming languages and ensures secure isolation through sandboxing and resource limits.

The service is designed to be:

  • 🔒 Secure: Runs code in isolated environments with strict resource limits
  • 🌐 Language-agnostic: Supports multiple programming languages
  • ⚡ Fast: Optimized for quick code execution and response
  • 🛡️ Safe: Leverages TEE for secure code execution
  • 🔄 Scalable: Handles concurrent executions with proper resource management

📋 Prerequisites

Before running this project, ensure you have:

Install cargo-tangle:

cargo install cargo-tangle --git https://github.com/tangle-network/blueprint.git --force

🚀 Quick Start

  1. Build the Project:
cargo build
  1. Run Tests:
cargo test
  1. Deploy the Blueprint:
cargo tangle blueprint deploy

💻 Usage

Execute Code via HTTP API

curl -X POST http://localhost:8080/execute \
  -H "Content-Type: application/json" \
  -d '{
    "language": "python",
    "code": "print(\"Hello, World!\")",
    "input": null,
    "timeout": 30
  }'

Response format:

{
  "stdout": "Hello, World!\n",
  "stderr": "",
  "status": "success",
  "execution_time": 123,
  "memory_usage": 1024
}

Execute Code via Tangle Network

let result = execute_code(
    "python".to_string(),
    "print('Hello from Tangle!')",
    None,
    context
).await?;

🔧 Configuration

The service can be configured through environment variables:

  • CODE_EXEC_PORT: HTTP server port (default: 8080)
  • MAX_CONCURRENT_EXECUTIONS: Maximum concurrent code executions (default: 10)

Resource limits can be customized in ResourceLimits:

ResourceLimits {
    memory: 256 * 1024 * 1024,  // 256MB
    cpu_time: 30,               // 30 seconds
    processes: 32,              // Max 32 processes
    file_size: 10 * 1024 * 1024, // 10MB
    disk_space: 100 * 1024 * 1024, // 100MB
}

🏗️ Architecture

The blueprint consists of several key components:

  1. CodeExecutionService: Core service managing code execution
  2. Sandbox: Isolated environment for secure code execution
  3. Language Executors: Language-specific execution implementations
  4. HTTP Server: RESTful API for code execution requests
  5. Resource Monitor: Tracks and limits resource usage

📜 License

Licensed under either of: