>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Python

Autonomiczny internet oparty na LoRa i radiowej transmisji pakietowej bez dostawców i adresów IP

Niedawno natknąłem się na ciekawy projekt, który przywołał wspomnienia z czasów FidoNet i BBS, ale z nowoczesną kryptografią. Wyobraź sobie taką sytuację: maszt komórkowy nie działa, domowy internet padł, kable trzonowe są przecięte, a ty musisz wysłać wiadomość lub sprawdzić stronę dokumentacji. NomadNet rozwiązuje dokładnie ten problem.

Projekt tworzy w pełni autonomiczną sieć mesh, która w ogóle nie potrzebuje internetu. Bez adresów IP, serwerów DNS, rejestracji numerów telefonów czy węzłów centralnych. Wszystko działa na bazie dowolnego kanału zdolnego transmitować bajty — czy to tani moduł LoRa, modem radiowy, Wi-Fi, czy nawet stary interfejs szeregowy.

Nomad Network Interface

Co system potrafi

Jeśli chodzi o funkcjonalność, NomadNet przypomina kieszonkowy Web 1.0 zbudowany na zasadach odporności na uszkodzenia na poziomie wojskowym:

  1. Przeglądarka tekstowa i mikrostony. Działa w niej ascetyczna przeglądarka stron Micron. To lekki język znaczników zoptymalizowany pod kanały o niskiej przepustowości. Strony są cache'owane po stronie klienta, aby uniknąć ponownej transmisji ruchu przez fale radiowe.
  2. Dynamiczna zawartość na węzłach. Węzeł może serwować nie tylko statyczne strony. Możesz powiązać generowanie odpowiedzi z skryptami w Pythonie, Bashu lub PHP. Dzięki temu ludzie prowadzą pełnoprawne fora, prognozy pogody i tablice ogłoszeń.
  3. Wiadomości offline bez pośredników. Komunikator działa na zasadzie P2P. Do adresowania używa hashów kryptograficznych zamiast nazw domen czy numerów telefonów. Bez haseł ani logowań: identyfikator węzła to sam klucz publiczny.
  4. Działanie w tle. NomadNet może działać jako graficzny klient TUI lub jako daemon systemowy na domowym serwerze czy Raspberry Pi, pozostawiając go włączonego jako przekaźnik dla sąsiadów.

Dialogues and messaging

Jak postawić własny węzeł

Instalacja jest niezwykle prosta, ponieważ projekt jest napisany w Pythonie. Najszybszy sposób na wdrożenie to przez pipx lub standardowe pip:

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

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

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

Jeśli nie chcesz bawić się ze środowiskiem Pythona, autor buduje oficjalne obrazy Dockera:

# Запуск 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

Przy pierwszym uruchomieniu NomadNet otworzy wbudowany przewodnik. Aby przetestować sieć bez kupowania modułów radiowych, wystarczy połączyć się z publicznym testem RNS przez internet.

Wewnątrz sieci testowej możesz przeglądać inne węzły. Naciśnij Ctrl+U, wprowadź hash węzła (na przykład hub w Dublinie abb3ebcd03cb2388a838e70c001291f9) i naciśnij Enter. Program znajdzie trasę w sieci i załaduje stronę główną.

List of known nodes

Co społeczność już zbudowała

Wokół Reticulum i NomadNet stopniowo tworzy się infrastruktura entuzjastów. Jeśli zajrzysz do katalogu narzędzi zewnętrznych, znajdziesz:

  • NomadForum — minimalistyczny silnik forum dla węzłów;
  • NomadForecast — informator pogodowy, który zbiera raporty i dostarcza je w formie tekstowej na żądanie;
  • micron-blog i Any2MicronConverter — generatory blogów i konwertery Markdown na znaczniki Micron;
  • Boty i tablice ogłoszeń oparte na LXMF do koordynacji grupowej.

Dla tych, którzy uważają konsolę za zbyt surową, autor opracował oddzielny klient GUI — Sideband. Jest dostępny na Linuksa, macOS i Androida.

Settings and network interfaces

Zastrzeżenia i realne scenariusze

Nie myśl, że NomadNet zastąpi zwykły internet w codziennych zadaniach. Prędkości kanałów radiowych jak LoRa (setki bajtów na sekundę) nakładają surowe ograniczenia: brak obrazów w wysokiej rozdzielczości, wideo czy ciężkich skryptów JS. Tylko skompresowany tekst, telemetria i krótkie wiadomości.

Dodatkowo projekt jest w statusie beta. Autor uczciwie ostrzega w opisie: kod nie przeszedł jeszcze zewnętrznego audytu bezpieczeństwa, więc poleganie na nim w sytuacjach krytycznych dla życia wymaga ostrożności.

Kto znajdzie ten projekt przydatny:

  • Wędrowcy, entuzjaści wypraw i krótkofalowcy, którzy potrzebują łączności w odległych regionach bez zasięgu komórkowego;
  • Deweloperzy IoT i budowniczowie autonomicznych stacji terenowych do zdalnego odpytywania czujników;
  • Eksperymentatorzy zainteresowani zdecentralizowanymi protokołami i sieciami mesh bez zależności od infrastruktury telekomunikacyjnej.

Możesz wypróbować projekt w kilka minut, instalując pakiet przez pip i łącząc się z siecią testową. To rzadki przykład oprogramowania, które przywraca romantyzm wczesnego internetu i niezależność od gigantów chmurowych.

Powiązane projekty