>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Python

Internet Autonomo Basato su LoRa e Packet Radio Senza Provider e Indirizzi IP

Recentemente mi sono imbattuto in un progetto interessante che mi ha riportato alla memoria l'era di FidoNet e BBS, ma con crittografia moderna. Immagina questo: la torre cellulare è giù, l'internet di casa non funziona, i cavi della backbone sono tagliati, e hai bisogno di inviare un messaggio o controllare una pagina di documentazione. NomadNet risolve esattamente questo problema.

Il progetto crea una rete mesh completamente autonoma che non ha bisogno di internet affatto. Nessun indirizzo IP, server DNS, registrazione con numero di telefono o nodi centrali richiesti. Tutto funziona sopra qualsiasi canale capace di trasmettere byte, che sia un economico modulo LoRa, un modem radio, Wi-Fi, o persino una vecchia interfaccia seriale.

Nomad Network Interface

Sotto il cofano

NomadNet è costruito su due librerie dello stesso autore: Reticulum Network Stack (RNS) e il protocollo di messaggistica LXMF.

Reticulum gestisce tutta la magia a basso livello. Costruisce una rete mesh crittografica peer-to-peer con routing dei messaggi da nodo a nodo. RNS è progettato per funzionare bene a velocità microscopiche. Il sistema invia felicemente dati su un canale radio a 300 bit al secondo. Se hai Ethernet o internet disponibile, Reticulum può usarli come uno dei trasporti, collegando isole isolate locali in una rete unificata.

LXMF aggiunge la consegna di messaggi crittografati sopra Reticulum con supporto per Crittografia End-to-End e Forward Secrecy. Se il destinatario è offline, i nodi intermedi memorizzano il pacchetto crittografato e lo consegnano quando il nodo riappare sulle onde.

NomadNet combina tutto questo in un'interfaccia console (TUI) con il proprio browser e messenger integrati.

Browsing pages in the console

Cosa può fare il sistema

In termini di funzionalità, NomadNet somiglia a un Web 1.0 tascabile costruito su principi di tolleranza ai guasti di livello militare:

  1. Browser di testo e micro pagine. Al suo interno gira il spartano browser di pagine Micron. È un linguaggio di markup leggero ottimizzato per canali a bassa larghezza di banda. Le pagine vengono memorizzate nella cache sul client per evitare di ritrasmettere traffico sulle onde radio.
  2. Contenuto dinamico sui nodi. Un nodo può servire non solo pagine statiche. Puoi legare la generazione di risposte a script Python, Bash o PHP. Grazie a questo, le persone gestiscono forum completi, previsioni meteorologiche e bacheche di annunci.
  3. Messaggi offline senza intermediari. Il messenger funziona su un principio P2P. Usa hash crittografici per l'indirizzamento invece di nomi di dominio o numeri di telefono. Nessuna password o login: l'identificatore del nodo è la chiave pubblica stessa.
  4. Funzionamento in background. NomadNet può funzionare come client TUI grafico o come demone di sistema su un home server o Raspberry Pi, lasciandolo in funzione come relay per i vicini.

Dialogues and messaging

Come configurare il proprio nodo

L'installazione è estremamente semplice dato che il progetto è scritto in Python. Il modo più veloce per distribuire è tramite pipx o standard pip:

# Установка через pipx в изолированное окружение
pipx install nomadnet

# При необходимости можно докинуть утилиты RNS и LXMF
pipx install rns
pipx install lxmf

# Запуск интерактивного интерфейса
nomadnet

Se non vuoi gestire l'ambiente Python, l'autore crea immagini Docker ufficiali:

# Запуск TUI в контейнере
docker run -it ghcr.io/markqvist/nomadnet:master --textui

# Либо запуск демона с пробросом конфигурации хоста
docker run -d \
  -v ~/.nomadnetwork/:/root/.nomadnetwork/ \
  -v ~/.reticulum/:/root/.reticulum/ \
  --network host \
  ghcr.io/markqvist/nomadnet:master

Al primo avvio, NomadNet aprirà la guida integrata. Per testare la rete senza acquistare moduli radio, basta connettersi al testnet RNS pubblico tramite internet.

All'interno della rete di test, puoi navigare altri nodi. Premi Ctrl+U, inserisci l'hash del nodo (per esempio, l'hub di Dublino abb3ebcd03cb2388a838e70c001291f9) e premi Invio. Il programma troverà il percorso nella rete e caricherà la pagina principale.

List of known nodes

Cosa la comunità ha già costruito

Un'infrastruttura di appassionati si sta formando gradualmente attorno a Reticulum e NomadNet. Se guardi il catalogo delle utility di terze parti, puoi trovare:

  • NomadForum — un motore di forum minimalista per nodi;
  • NomadForecast — un informatore meteorologico che raccoglie report e li consegna in forma testuale su richiesta;
  • micron-blog e Any2MicronConverter — generatori di blog e convertitori da Markdown a markup Micron;
  • Bot e bacheche di annunci basati su LXMF per il coordinamento di gruppo.

Per chi trova la console troppo austera, l'autore ha sviluppato un client GUI separato — Sideband. È disponibile su Linux, macOS e Android.

Settings and network interfaces

Caveat e scenari reali

Non pensate che NomadNet sostituirà il web normale per le attività quotidiane. Le velocità dei canali radio come LoRa (centinaia di byte al secondo) impongono limitazioni rigide: nessuna immagine ad alta risoluzione, video o script JS pesanti. Solo testo compresso, telemetria e brevi messaggi.

Inoltre, il progetto è in stato beta. L'autore onestamente avverte nella descrizione: il codice non ha ancora subito audit di sicurezza esterni, quindi affidarsi ad esso in scenari critici per la vita richiede cautela.

Chi troverà utile questo progetto:

  • Escursionisti, appassionati di spedizioni e radioamatori che hanno bisogno di comunicazione in aree remote senza copertura cellulare;
  • Sviluppatori IoT e costruttori di stazioni sul campo autonome per il polling di sensori remoti;
  • Sperimentatori interessati a protocolli decentralizzati e reti mesh senza dipendenza dall'infrastruttura di telecomunicazione.

Puoi provare il progetto in un paio di minuti installando il pacchetto tramite pip e connettendoti alla rete di test. È un raro esempio di software che riporta il romanticismo del web delle origini e l'indipendenza dai giganti del cloud.

Progetti correlati