無料で分散型グループチャットができる「River」、ゼロから構築し直されたFreenet上に構築され中央サーバーなしで遅延が1秒未満のリアルタイムチャットが可能

Riverは従来のチャットプラットフォームに代わる選択肢として開発された分散型グループチャットシステムです。Freenetをベースにしているため安全でアップグレード可能なシステムを実現しているのが特徴です。
freenet/river: Decentralized group chat system built on Freenet
https://github.com/freenet/river/
◆Freenetについて
Freenetは2000年にIan Clarke氏によって開発された、匿名性が高く検閲に強いP2Pプラットフォームです。ただし2023年に内部コード「Locutus」として新規開発されていたプラットフォームが「Freenet」に改名され、従来のFreenetは改名して「Hyphanet」になったという複雑な経緯があります。
Important Announcement: Freenet naming change
https://www.mail-archive.com/[email protected]/msg55262.html
Freenet renamed to Hyphanet : Hyphanet
https://www.hyphanet.org/freenet-renamed-to-hyphanet.html
Riverはこのうち、ゼロから構築し直された現行Freenetの方をベースにしています。一般的には分散型システムは中央集権型システムに比べて遅延が増加する傾向があるにもかかわらず、RiverはFreenetネットワークを介したリアルタイムのグループチャットにおいて1秒未満のメッセージ遅延で通信を行うことができたとのことです。
River: Real-Time Group Chat on Freenet | Freenet
https://freenet.org/about/news/river-realtime-chat-milestone/

◆導入
公式GitHubでは最も手軽にRiverを試す方法として「Freenetの公式チャットルームに参加する」ことを勧めています。前提としてFreenetの導入が必要となりますが、今回はFreenet本体をWSL(Ubuntu)上でサービスとして起動しホストのWindowsでUIを表示させる形式で導入します。なおcurlコマンドを使用する必要があるためWSL上でcurlがインストールされている必要があります。
sudo apt install curl
Freenetのダウンロードとインストールは以下のコマンドを実行します。
curl -fsSL https://freenet.org/install.sh | sh
しばらくログが流れますが、以下の問い合わせで停止するのでYを入力してエンターキーを押すと先に進みます。
success: Freenet 0.2.67 installed successfully!
Would you like to install Freenet as a system service? [y/N]
インストールの完了後、以下のコマンドを実行しサービスを起動します。
freenet service start
サービスが正常に起動していれば、Windows側のブラウザで「http://localhost:7509/」を開くとFreenetのUIが表示されます。

Freenetのサービス起動が確認できたら、続いて以下のページを開きます。
Try Freenet: Join River | Freenet
https://freenet.org/quickstart/
下にスクロールすると「Step 2: Join the room」の項目があるので、「Open River & Join Chat」のボタンをクリックすると招待コードが発行されFreenetの公式チャットルーム画面が開きます。

ただし記事作成時点ではURLに問題があり、ここまでの手順通りに進めると「このサイトにアクセスできません」と表示されてしまいます。原因はURL中のドメイン「127.0.0.1」をWindowsがlocalhostだと認識していないからなので、「127.0.0.1」の部分を「localhost」と上書きしてやればチャットルームを開くことができます。

「Invitation Received」ポップアップにチャットルームで使用されるニックネームがランダムで表示されているので、そのまま使用するか別の名前に変更するかして「Accept」ボタンをクリックするとチャットルームに参加できます。

Freenetの公式チャットルームの様子はこんな感じです。

◆コマンドラインインターフェース
Riverにはコマンドラインからチャットルームを操作するためのCLIツール「riverctl」が用意されています。riverctlコマンドには以下のサブコマンドがあります。
・riverctl room:ルーム管理(作成・一覧表示・情報表示)
・riverctl message:メッセージの送受信
・riverctl member:メンバー管理
・riverctl invite:招待コードの作成と承認
◆まとめ
記事作成時点ではRiverはまだバージョンが0.1.51であり、開発途上であるためか少し踏み込んだビルドや動作検証を行うとエラーが発生する状況でした。しかしながらFreenetの公式チャットルームを体験するだけでも分散型グループチャットシステムの将来性を感じることができたので、手軽に安全なグループチャットを構築したいと考えている人は今後の動向に注目しておくべきです。
・関連記事
WireGuardベースのオーバーレイネットワークとゼロトラストネットワークアクセスを組み合わせ信頼性が高く安全な接続ができる「NetBird」、オープンソースでセルフホスト可能 - GIGAZINE
Twitter創業者によるP2Pチャットアプリ「bitchat」が中国のApp Storeから削除される - GIGAZINE
無料・広告なしでメッセージ送受信できてブログも開設可能でインターネットがダウンしてもBluetoothやWi-Fiのみで通信できるアプリ「Briar」、中央サーバーなしで動作しE2Eで暗号化 - GIGAZINE
Twitter創業者のジャック・ドーシーがBluetoothでP2P通信するチャットアプリ「bitchat」を開発中、アカウント作成不要でWi-Fiやモバイル回線に接続せずに通信可能 - GIGAZINE
P2PでGitを共有するコードコラボレーションネットワークシステム「Radicle」はどんなものなのか?を開発者が解説 - GIGAZINE
分散型SNSのBlueskyはP2P技術からどういった影響を受けているのか? - GIGAZINE
無料なのに容量無制限かつPC&スマホ間の転送も可能なファイル転送サービス「Send Anywhere」レビュー - GIGAZINE
YouTubeやTwitchで人気のライブ配信を支える技術とは? - GIGAZINE
・関連コンテンツ
in ソフトウェア, ネットサービス, レビュー, Posted by log1c_sh
You can read the machine translated English article River is a free, decentralized group cha….







