master
- Created velxio-test/ with Velxio project file for web-based testing - Fixed qemu-smoke.sh to clean APT cache before running installer - Added --private-users=no flag to systemd-nspawn for network access - All 16 smoke test checks now passing (config, backend, frontend, tor, systemd, users) - Includes comprehensive test validation script for Velxio - Documented both testing methods (QEMU smoke test + Velxio web UI)
tri-pi
tri-pi is a Raspberry Pi appliance for running a Triangles (TRI) relay node over Tor.
Each Pi acts as a full network node, strengthening the Triangles network by:
- Relaying transactions across the network
- Relaying blocks to help other nodes sync
- Accepting incoming connections via Tor hidden service
- Operating entirely over Tor for privacy and decentralization
It is a separate project from the Triangles source tree. The daemon itself lives in a sibling checkout such as ../triangles, while tri-pi owns:
- Pi provisioning
- Tor hidden service setup
- systemd units
- health/status APIs
- a lightweight local dashboard
- cross-build and QEMU-based test helpers
Repository Layout
tri-pi/
├── backend/ # Local API and status collector
├── build/ # Cross-build and QEMU helper scripts
├── config/ # triangles.conf and backend env templates
├── docs/ # Architecture and workflow notes
├── frontend/ # Local status dashboard
├── image/ # Pi image customization placeholders
├── services/ # systemd unit files
├── setup/ # Provisioning scripts run on the Pi
└── tor/ # torrc templates and Tor helper material
Relationship To triangles
tri-pi does not vendor or modify the daemon source by default. It expects a separate checkout:
e:/repos/
├── triangles/
└── tri-pi/
That keeps the concerns clean:
triangles: wallet/node source, native builds, protocol changestri-pi: appliance packaging, deployment, monitoring, Tor, Pi UX
Current Scope
This scaffold includes:
- a minimal Python backend that exposes node status
- a static dashboard that polls the backend
- Pi install/build script placeholders
- systemd unit templates
- Tor and daemon config templates
It does not yet include:
- a production-ready installer
- real RPC authentication management
- image generation
- CI workflows
- automatic wallet unlock
Quick Start
Run the local backend:
python backend/app.py
Then open:
http://127.0.0.1:8080/
By default the backend serves the frontend from frontend/ and reports placeholder node data until a real trianglesd RPC endpoint is configured.
Next Steps
- Wire
backend/app.pyto the real Triangles RPC surface. - Flesh out
setup/install.shfor Raspberry Pi OS Bookworm. - Add QEMU-based integration tests under
build/. - Add release packaging for prebuilt ARM artifacts.
Description
Languages
Shell
100%