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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f611eb0 Β· Mar 20, 2025

History

8 Commits
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025
Mar 20, 2025

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