プロバイダーもIPアドレスも不要、LoRaとパケットラジオによる自律型インターネット
最近、興味深いプロジェクトを見つけました。FidoNetやBBS時代の思い出が蘇るようなプロジェクトですが、現代的な暗号化技術を活用したものです。基地局がダウンし、家庭のインターネットが不通になり、バックボーンケーブルが切断されている状況を想像してみてください。そんな状況でメッセージを送信したり、ドキュメントページを確認する必要があっても、NomadNetはこの問題を正確に解決します。
このプロジェクトは、インターネットを一切必要としない完全に自律的なメッシュネットワークを構築します。IPアドレス、DNSサーバー、電話番号登録、中央ノードは不要です。すべてはバイトの送信が可能なあらゆるチャネル上で動作します。安価なLoRaモジュール、ラジオモデム、Wi-Fi、さらには古いシリアルインターフェースでも可能です。

内部構造
NomadNetは、同じ作者による2つのライブラリの上に構築されています:Reticulum Network Stack(RNS)とLXMFメッセージングプロトコルです。
Reticulumはすべての低レベル魔法を処理します。ノード間メッセージルーティングを備えた、ピアツーピアの暗号化メッシュネットワークを構築します。RNSは極低速でも正常に動作するように設計されています。システムは300ビット毎秒のラジオチャネルでデータを喜んで送信します。Ethernetやインターネットが利用可能な場合、Reticulumはそれらを一つのトランスポートとして使用でき、ローカルな孤立したアイランドを統一されたネットワークに接続できます。
LXMFは、Reticulumの上にエンドツーエンド暗号化と前方秘匿性サポートを備えた、暗号化されたメッセージ配信を追加します。受信者がオフラインの場合、中間ノードが暗号化されたパケットを保存し、ノードが再び воздухе(airs)に出現したときに配信します。
NomadNetは这一切を独自のコンソールインターフェース(TUI)と組み込みブラウザ、メッセージングクライアントに統合しています。

システムができること
機能的には、NomadNetはミリタリーグレードのフォールトトレランス原則に基づいたポケットサイズのWeb 1.0のようなものです:
- テキストブラウザとマイクロページ。内部にはスパルタンなMicronページブラウザが動作しています。軽量なマークアップ言語で、低帯域チャネルに最適化されています。ページはクライアントにキャッシュされ、ラジオ空間の再送信を避けます。
- ノード上の動的コンテンツ。ノードは静的なページだけでなくサービスを提供できます。Python、Bash、PHPスクリプトにレスポンス生成をバインドできます。これにより、人々は本格的なフォーラム、天気予報、掲示板などを運営しています。
- 仲介者なしのオフラインメッセージ。メッセージングはP2P原理で動作します。ドメイン名や電話番号の代わりに暗号化ハッシュをアドレスに使用します。パスワードやログイン不要:ノード識別子が公開鍵そのものになります。
- バックグラウンド動作。NomadNetはグラフィカルなTUIクライアント、またはホームサーバーやRaspberry Pi上のシステムデーモンとして実行でき、近所の人のリレーとして動作させ続けることができます。

独自のノードを設定する方法
プロジェクトはPythonで書かれているため、インストールは非常に簡単です。最速のデプロイ方法は、pipまたは標準的なソースコードです:
Python環境を扱いたくない場合、作者は公式のDockerイメージをビルドしています:
初回起動時、NomadNetは組み込みガイドを開きます。ラジオモジュールを購入せずにネットワークをテストするには、インターネット経由でパブリックなRNSテストネットに接続するだけです。
テストネットワーク内では、他のノードを閲覧できます。を押してノードハッシュを入力し(例:ダブリンハブ)、Enterを押します。プログラムはネットワーク内でルートを見つけ、メインページを読み込みます。

コミュニティがすでに構築したもの
ReticulumとNomadNetの周囲には、熱意のあるインフラが徐々に形成されつつあります。サードパーティユーティリティのカタログを見ると、以下が見つかります:
- NomadForum — ノード用のミニマリストフォーラムエンジン;
- NomadForecast — 天気情報で、レポートを収集しリクエストに応じてテキストで配信する;
- micron-blogとAny2MicronConverter — ブログジェネレーターとMarkdownからMicronへのコンバーター;
- グループ調整用のLXMFベースのボットと掲示板。
コンソールが厳しすぎる感じる人のために、作者は別のGUIクライアントであるSidebandを開発しました。Linux、macOS、Androidで利用可能です。

注意点と現実的なシナリオ
NomadNetが日常タスクのために通常のWebに取って代わると思うしないでください。LoRa(数百バイト毎秒)のようなラジオチャンネルの速度は厳しい制限を課します:高解像度画像、ビデオ、重いJSスクリプトはできません。圧縮されたテキスト、テレメトリ、短いメッセージのみです。
さらに、プロジェクトはベータステータスです。作者は説明で正直に警告しています:コードはまだ外部のセキュリティ監査を受けていないため、生命の危機に関わるシナリオでこれに依存する場合は注意が必要です。
このプロジェクトが役立つ人:
- 蜂窝カバレッジのない遠隔地での通信が必要なハイカー、遠征愛好家、アマチュア無線家;
- リモートセンサーポーリング用のIoT開発者と自律型フィールドステーションビルダー;
- 通信インフラへの依存なしの分散型プロトコルとメッシュネットワークに興味のある実験者。
pipでパッケージをインストールし、テストネットワークに接続すれば、数分でプロジェクトを試すことができます。初期のウェブのロマンスとクラウド巨人からの独立性を取り戻すソフトウェアの珍しい例です。
関連プロジェクト