Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gretel/ramp

RAMP provides a unified system for marking and identifying communication endpoints across physical and digital domains, designed specifically for hacker spaces, maker labs and technical gatherings like the Chaos Communication Congress.
https://github.com/gretel/ramp

conference congress documentation hackerspace marking meshtastic protocols resources reticulum

Last synced: 3 days ago
JSON representation

RAMP provides a unified system for marking and identifying communication endpoints across physical and digital domains, designed specifically for hacker spaces, maker labs and technical gatherings like the Chaos Communication Congress.

Awesome Lists containing this project

README

        

# πŸ“‘ RAMP: Resource Access Marking Protocol

## πŸ” Overview

RAMP provides a unified system for marking and identifying communication endpoints across physical and digital domains, designed specifically for hacker spaces, maker labs and technical gatherings like the Chaos Communication Congress.

## πŸ—οΈ Core Architecture

Basic syntax:
```
[~]/[:[/]][#]
```
Where `~` prefix indicates a person reference (e.g. `~N/I:10.0.0.1/24#NOC-LEAD`)

Where:
- `layer`: Single uppercase letter [A-Z]
- `protocol`: Single uppercase letter [A-Z]
- `param1`, `param2`: Protocol-specific parameter format
- `metadata`: Uppercase alphanumeric with hyphens [A-Z0-9-]
- `[]` denotes optional components

Example: `P/L:433.500MHz/SF7#MESHNODE`

### Label Format

Standard sticker (40x40mm):
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ [QR] β”‚ <- 12x12mm QR code
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ P/L:433.500M β”‚ <- 8pt monospace
β”‚ /SF7#NODE01 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ πŸ“‘ LoRa β”‚ <- 10pt sans-serif
β”‚ Node #01 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

### URI Format
```
ramp:///[:[/]][#]
```
- URI-unsafe characters must be percent-encoded
- Parameters and metadata are case-preserved
- Fragment (#) cannot contain additional fragments

## 🌐 Protocol Stack Examples

### Basic Layer Model
```mermaid
graph TB
L0[Physical Layer: P] -->|Raw transmission| L1[Network Layer: N]
L1 -->|Protocol| L2[Application Layer: A]

style L0 fill:#1a73e8,color:white
style L1 fill:#34a853,color:white
style L2 fill:#ea4335,color:white
```

### Examples

## Remote Shell Access

```mermaid
graph TB
P1[P/L:433.500MHz/SF7] -->|Mesh Node| N1[N/R:a1b2c3d4]
N1 -->|Transport| A1[A/X:shell#1337]

style P1 fill:#1a73e8,color:white
style N1 fill:#34a853,color:white
style A1 fill:#ea4335,color:white
```

Remote system access over LoRa-based Reticulum mesh. SF7 spreading factor balances range and speed.

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ [QR] β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ P/L:433.500M β”‚
β”‚ /SF7#SHELL01 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ πŸ“‘ LoRa β”‚
β”‚ Shell #01 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

## DMR Repeater System
```mermaid
graph TB
P1[P/R:145.500MHz] -->|Input| N1[N/D:317523]
N1 -->|Controller| P2[P/R:145.900MHz]
P2 -->|Output| A1[A/M:@rprt145]

style P1 fill:#1a73e8,color:white
style N1 fill:#34a853,color:white
style P2 fill:#1a73e8,color:white
style A1 fill:#ea4335,color:white
```

DMR voice repeater with Matrix status updates. Input 145.500MHz, output 145.900MHz, monitoring via Matrix.

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ [QR] β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ P/R:145.500M β”‚
β”‚ #RPRT317523 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ πŸ“» DMR β”‚
β”‚ Repeater #01 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

## πŸ“‹ Protocol Mappings

### Parameter Validation Rules
```python
VALIDATION = {
# Physical parameters
'freq': r'^\d{3}\.\d{3}[MG]Hz$', # e.g., 433.500MHz
'sf': r'^SF\d{1,2}$', # e.g., SF7
'mac': r'^([0-9A-F]{2}:){5}[0-9A-F]{2}$', # MAC address
'channel': r'^\d{1,3}$', # e.g., 36
'speed': r'^\d+[KMGT]$', # e.g., 100M

# Network parameters
'ipv4': r'^\d{1,3}(\.\d{1,3}){3}$', # IPv4 address
'ipv6': r'^[0-9a-fA-F:]+$', # IPv6 address
'port': r'^\d{1,5}$', # Port number
'hash': r'^[0-9a-f]{64}$', # SHA-256 hash

# Application parameters
'user': r'^@?[a-zA-Z0-9_.-]+$', # Username
'room': r'^[#!][a-zA-Z0-9_.-]+$', # Room identifier
'host': r'^[a-zA-Z0-9.-]+$' # Hostname
}
```

### Physical Layer (P)
```python
PHYSICAL = {
# Radio
'L': {'name': 'LoRa', 'params': '/', 'note': 'πŸ“‘ Long Range Radio',
'presets': {
'ST': {'name': 'Short Turbo', 'sf': 7, 'bw': 500, 'cr': '4/5', 'dr': 21.88},
'SF': {'name': 'Short Fast', 'sf': 7, 'bw': 250, 'cr': '4/5', 'dr': 10.94},
'SS': {'name': 'Short Slow', 'sf': 8, 'bw': 250, 'cr': '4/5', 'dr': 6.25},
'MF': {'name': 'Medium Fast', 'sf': 9, 'bw': 250, 'cr': '4/5', 'dr': 3.52},
'MS': {'name': 'Medium Slow', 'sf': 10, 'bw': 250, 'cr': '4/5', 'dr': 1.95},
'LF': {'name': 'Long Fast', 'sf': 11, 'bw': 250, 'cr': '4/5', 'dr': 1.07},
'LM': {'name': 'Long Moderate', 'sf': 11, 'bw': 125, 'cr': '4/8', 'dr': 0.34},
'LS': {'name': 'Long Slow', 'sf': 12, 'bw': 125, 'cr': '4/8', 'dr': 0.18},
'VLS':{'name': 'Very Long Slow', 'sf': 12, 'bw': 62.5,'cr': '4/8', 'dr': 0.09}
}},
'R': {'name': 'RF', 'params': '/', 'note': 'πŸ“» Generic Radio'},
'W': {'name': 'WiFi', 'params': '/', 'note': 'πŸ“Ά WiFi Radio'},
'B': {'name': 'BLE', 'params': '/', 'note': '🦷 Bluetooth Low Energy'},
'Z': {'name': 'Zigbee', 'params': '/', 'note': 'πŸ•ΈοΈ Zigbee Radio'},

# Wired
'E': {'name': 'Ethernet', 'params': '/', 'note': 'πŸ”Œ Wired Network'},
'S': {'name': 'Serial', 'params': '/', 'note': 'πŸ”€ Serial Data'},
'U': {'name': 'USB', 'params': '/', 'note': 'πŸ”Œ Universal Serial Bus'},
'C': {'name': 'CAN', 'params': '/', 'note': 'πŸš— Controller Area Network'},

# Special
'Q': {'name': 'QR', 'params': '/', 'note': 'πŸ“± QR Code Resource'},
'O': {'name': 'Optical', 'params': '/', 'note': 'πŸ”¦ Light-based'},
'N': {'name': 'NFC', 'params': '/', 'note': 'πŸ“± Near Field Comms'},
'A': {'name': 'Audio', 'params': '/', 'note': 'πŸ”Š Sound-based'},
'Q': {'name': 'QAM', 'params': '/', 'note': '〰️ RF Modulation'},
'V': {'name': 'Visual', 'params': '/', 'note': 'πŸ‘οΈ Visual Light Comms'}
}
```

### Network Layer (N)
```python
NETWORK = {
# Internet Infrastructure
'A': {'name': 'AS', 'params': '/', 'note': '🌐 Autonomous System'},
'I': {'name': 'IPv4', 'params': '/', 'note': '🌐 Internet Protocol v4'},
'6': {'name': 'IPv6', 'params': '/', 'note': '🌐 Internet Protocol v6'},
'T': {'name': 'TCP', 'params': '/', 'note': 'πŸ”Œ Transport Control'},
'U': {'name': 'UDP', 'params': '/', 'note': 'πŸ”Œ User Datagram'},

# Amateur Radio
'P': {'name': 'POCSAG', 'params': '/', 'note': 'πŸ“Ÿ Paging Protocol'},
'D': {'name': 'DMR', 'params': '/', 'note': 'πŸŽ™οΈ Digital Mobile Radio'},
'X': {'name': 'AX.25', 'params': '/', 'note': 'πŸ“‘ Packet Radio'},

# Mesh/P2P
'M': {'name': 'Meshtastic','params': '/', 'note': 'πŸ•ΈοΈ Meshtastic Mesh'},
'R': {'name': 'Reticulum', 'params': '/', 'note': 'πŸ•ΈοΈ Reticulum Mesh'},
'Y': {'name': 'Yggdrasil', 'params': '/', 'note': '🌳 Yggdrasil Network'},
'C': {'name': 'cjdns', 'params': '/', 'note': 'πŸ•ΈοΈ cjdns Mesh'},
'H': {'name': 'HAMnet', 'params': '/', 'note': 'πŸ“‘ Amateur Radio Network'},

# Overlay Networks
'O': {'name': 'Tor', 'params': '/', 'note': 'πŸ§… Tor Network',
'types': {'HS': 'Hidden Service', 'NODE': 'Relay Node', 'DIR': 'Directory'}},
'N': {'name': 'I2P', 'params': '/', 'note': 'πŸ§… I2P Network'},
'L': {'name': 'IPFS', 'params': '/', 'note': 'πŸ“¦ InterPlanetary FS'},
}
}
```

### Application Layer (A)
```python
APPLICATION = {
# Communication
'M': {'name': 'Matrix', 'params': '/', 'note': 'πŸ’¬ Matrix Protocol'},
'X': {'name': 'XMPP', 'params': '/', 'note': 'πŸ’¬ XMPP Protocol'},
'I': {'name': 'IRC', 'params': '/', 'note': 'πŸ’¬ Internet Relay Chat',
'uri': 'irc://[:]/[,]'},
'L': {'name': 'LXMF', 'params': '/', 'note': 'πŸ“¨ LXMF Messaging'},
'E': {'name': 'Email', 'params': '/', 'note': 'πŸ“§ Email Protocol'},

# Services
'H': {'name': 'HTTP', 'params': '/', 'note': '🌐 Web Service'},
'G': {'name': 'Gemini', 'params': '/', 'note': 'πŸš€ Gemini Protocol'},
'S': {'name': 'SIP', 'params': '/', 'note': '☎️ Voice Over IP'},
'F': {'name': 'FTP', 'params': '/', 'note': 'πŸ“‚ File Transfer'},
'N': {'name': 'NNTP', 'params': '/', 'note': 'πŸ“° Usenet News'},

# Security
'P': {'name': 'PGP', 'params': '/', 'note': 'πŸ” PGP Keys'},
'O': {'name': 'OTR', 'params': '/', 'note': '🀫 Off The Record'},
'W': {'name': 'WireGuard', 'params': '/', 'note': 'πŸ”’ VPN Tunnel'},

# Special Purpose
'T': {'name': 'Telemetry', 'params': '/', 'note': 'πŸ“Š Sensor Data'},
'D': {'name': 'DNS', 'params': '/', 'note': 'πŸ“– Name Service'},
'B': {'name': 'Bitcoin', 'params': '/', 'note': 'β‚Ώ Cryptocurrency'},
'R': {'name': 'Radio', 'params': '/', 'note': 'πŸ“» Amateur Radio'},
'Z': {'name': 'ZeroMQ', 'params': '/', 'note': 'πŸ”„ Message Queue'}
}
```

## πŸŽͺ Congress Example Labels

WiFi Access Point:
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ [QR] β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ P/W:36/160 β”‚
β”‚ #NOC.AP.12 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ πŸ“Ά WiFi β”‚
β”‚ NOC AP 12 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

Network Segment:
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ [QR] β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ N/I:10.128.0.0 β”‚
β”‚ /16#HACKCTR β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 🌐 Net β”‚
β”‚ Hack Center β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

NOC Reference:
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ [QR] β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ ~N/I:10.128 β”‚
β”‚ /16#NOC-LEAD β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ πŸ‘€ Net β”‚
β”‚ NOC Lead β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

QR Resource:
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ [QR] β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ P/Q:128/WIFI β”‚
β”‚ #GUEST-NET β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ πŸ“± QR β”‚
β”‚ WiFi Access β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

Tor Hidden Service:
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ [QR] β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ N/O:xmpl23... β”‚
β”‚ /80#HS.01 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ πŸ§… Tor β”‚
β”‚ Hidden Svc β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

Badge Charging:
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ [QR] β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ P/U:2.0/CDC β”‚
β”‚ #CHARGE.05 β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ πŸ”Œ USB β”‚
β”‚ Charging #05 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```