Spaces:
Running
on
Zero
Running
on
Zero
| """ | |
| Node Pairing Logic | |
| Generates and verifies 6-digit pairing codes for secure node initialization. | |
| """ | |
| import secrets | |
| import string | |
| import time | |
| from dataclasses import dataclass | |
| from typing import Optional | |
| class PairingSession: | |
| code: str | |
| node_id: str | |
| created_at: float | |
| expires_at: float | |
| def is_expired(self) -> bool: | |
| return time.time() > self.expires_at | |
| def generate_pairing_code(length: int = 6) -> str: | |
| """Generate a secure random numeric code.""" | |
| alphabet = string.digits | |
| return ''.join(secrets.choice(alphabet) for _ in range(length)) | |
| def create_session(node_id: str, ttl_seconds: int = 300) -> PairingSession: | |
| """Create a new pairing session with a unique code.""" | |
| code = generate_pairing_code() | |
| now = time.time() | |
| return PairingSession( | |
| code=code, | |
| node_id=node_id, | |
| created_at=now, | |
| expires_at=now + ttl_seconds | |
| ) | |