Skip to content

A Tangle Blueprint for running a secure code execution function-as-a-service platform

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

tangle-network/secure-code-execution-blueprint

Repository files navigation

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:

About

A Tangle Blueprint for running a secure code execution function-as-a-service platform

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published