
2026/02/05 0:50
**アーカン‑A12:異なる網を織り成す**
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
**Arcanは、ウィンドウ管理を外部アプリケーションに委譲するモジュラー型ブラウザエンジンであり、結果として最上位のアプリがデスクトップのように機能します。 Arcan内部では、ドキュメント閲覧は別々のツールを署名済みかつ共有可能なアプリケーションパッケージへコンパイルすることで実現され、この再帰的プロセスにより他のアプリケーションがそのバンドル内に埋め込まれることができます。 メディアデコード、変換、ネットワーキング、およびシステム統合は、各インスタンスごとに設定された交換可能で権限分離されたプログラムセットによって処理され、アーキテクチャにマイクロカーネルのような感覚を与えます。
ネットワークコンポーネント――デフォルトでは afsrv_net ―はリソース取得とリンク解決を制御し、ヘルパーツール arcan-net と共にA12プロトコルを実装します。 A12は一方向チャネルを使用して動画・音声・バイナリブロブをプッシュまたはプルできるため、軽量なインタラクティブメディアのウェブを提供します。
オプション拡張機能がA12を補完します:暗号化されたアイデンティティリンク(ペットネーム+公開鍵)、ディレクトリロールによる発見、NATトラバーサル支援、ファイルストレージ、およびアプリケーションホスティング。 ディレクトリサーバはレンデブーズポイントとして機能し、Arcanクライアント間でクリップボード同期と入力共有を可能にします。
本稿は、歴史的BBSの背景、”フレイジングウェブ”の問題点、A12プロトコルの特性、A12ベースのウェブ設計、およびディレクトリサーバ上でアプリケーションやコントローラを署名・プッシュ・ダウンロード・更新・実行するための実践的開発者向け指示といったセクションに分かれています。
もし元の表現を保持したまま欠落しているポイントだけを追加したい場合は、上記段落を現在の要約の最初の二文の後に挿入してください。
本文
Arcan Explained – 異なる Web を閲覧するブラウザ(付随作品)
元記事からの主なポイント
- 範囲 – Arcan はネットワーク化されたアプリケーションを実行し、最外層プロセスが デスクトップ(ウィンドウマネージャとディスプレイコントローラ)となります。
- ドキュメント閲覧 – 別々のツールでコンパイルステップを経て、署名済み・共有可能なアプリケーションパッケージが生成されます。
- 再帰と構成 – アプリは他のアプリ(自分自身も含む)を埋め込み、許可されたローカルソフトウェアと対話できます。
- 委譲 – メディアデコード、変換、ネットワーク、システム統合は、各インスタンスで権限が分離されたプログラムへ委譲されます。
Arcan は本質的にマイクロカーネル型アーキテクチャ上構築されたブラウザです。選択したネットワークプログラムがリソース取得、リンク解決、発見などを制御し、最終的に「Web」を決定します。この分離性のため、Arcan 本体サイトとは別途議論されています。
記事ではデフォルト実装(
afsrv_net)とそのヘルパーツール arcan-net の設計・選択肢、そして A12 プロトコル を用いて Web を構築する方法を説明しています。
目次
- 旧時代の思い出 – BBS ノスタルジア
- 別々な世界が絡み合う弱くなる Web – WWW が断片化している理由
- A12 をプロトコルとして – コア通信層
- A12 Web – アプリケーション中心の Web の構築
- 開発者ストーリー – 実際にアプリを作成・実行する手順
1. 旧時代の思い出
私の初期インターネット体験は Bulletin Board Systems(BBS)でした。BBS は選択された Usenet グループを翻訳し、電話回線でメールを転送していました。BBS は親密で、一人用システムが多く、発見は口コミ・雑誌・サイトリストによって行われていました。リンクの特徴は以下の通りです。
- 一方向 – 参照元を知らない対象
- 非記述的 – 手動で解決する必要がある
- 揮発性 & ローカル – 変更が即座にリンクを壊す
現代 Web にも同様の問題は残っており、URL は脆弱で発見が難しく、多くのリソースはローカルスコープのままです。
2. 別々な世界が絡み合う弱くなる Web
「World Wide Web」は真に全世界を網羅しているわけではありません。モダリティは以下のように分かれます。
- オープン、分散、公共
- クローズド、中央集権、招待制
スパムや企業のゲートキーピング、新たな発見メカニズム(検索エンジン・ポータル)の必要性が混乱を引き起こします。BBS の体験はリンクと発見を再設計するヒントとなります。
3. A12 をプロトコルとして
A12 は軽量な転送層で、インタラクティブメディアをプッシュまたはプルできます。
- 一方向チャンネル – ビデオ・オーディオ・バイナリブロブ
- 役割 – Source, Sink, Directory
- 拡張機能
- ペットネームとハッシュキーによる発見(DNS 不使用)
- トラフィック中継、NAT トラバーサル、共有ストレージ、マッチメイキングのためのリゾートディレクトリ
ディレクトリはアプリケーションをホストし、クリップボードを同期させ、入力デバイスを共有し、他のネットワークリソースへのアクセスを仲介します。特別なスクリプト API 関数(
link_target, reference_target)がリンクタイプを定義します。
4. A12 Web
arcan-net を使うと次のように操作できます。
- ディレクトリへ接続(例:
)。arcan.divergent-desktop.org - キーペアで認証、TOFU(Trust‑On‑First‑Use)を使用。
- アプリケーションパッケージの一覧表示・ダウンロード(
,LIST
)。DOWNLOAD - 署名検証と一時ストレージへの解凍。
- サンドボックス化された I/O チャンネルでパッケージを実行。
- ステート同期のためディレクトリメッセージンググループに参加。
終了時に永続キー‑バリュー対のスナップショットがサーバへアップロードされ、更新は原子性を保ちます。このプロトコルはコード・データ・状態が署名済みであることを保証し、未署名スクリプトの挿入を防ぎます。
5. 開発者ストーリー
最小アプリケーション雛形
mkdir $ARCAN_APPLBASEPATH/myappl cat > $ARCAN_APPLBASEPATH/myappl/myappl.lua <<'EOF' function myappl() -- アプリロジックここに end EOF
アプリの公開
arcan-net --sign-tag mykey --push-appl myappl somedir@
somedir@ はディレクトリサーバを指すキーストアエントリーです。
ローカル実行
arcan-net somedir@ myappl
ウィンドウが表示され、アプリはサンドボックス内で動作します。
更新(壊れテスト)
cat > $ARCAN_APPLBASEPATH/myappl/myappl.lua <<'EOF' function myappl() bad_function_call() -- 故意のエラー end EOF arcan-net --sign-tag mykey --push-appl myappl somedir@
クライアントは自動で新パッケージをダウンロードし、クラッシュを検知してレポートをアップロードし、ロールバックします。
メディアストリーミング例
function myapp() net_open("@stdin", function(source,status) if status.kind == "connected" then play_media(source) end end) end function play_media(ref) local fio = open_nonblock(ref,{},{}) launch_decode(nil,"protocol=media", function(src,status) if status.kind == "bchunkstate" then open_nonblock(src,{},fio) elseif status.kind == "resized" then show_image(src) resize_image(src,status.width,status.height) end end) end
サーバ側のコントローラは論理リソースを実際ファイルへマッピングできます。
function myapp_load(cl,resource) if resource=="test" then return "test.mp4" end end
結びに
Arcan はブラウザ、開発ツール、ネットワークスタックを統合します。更新は署名済みで、全通信が明示的です。このモデルは数ノードから大規模ネットワークまでスケールし、クッキーやログインフォームは不要。認証フローは A12 プロトコル自体に流れ込みます。
今後の課題として、支払いシステム(例:GNU Taler)の統合、既存 Web コンテンツの保存、共同作業機能の追加などが挙げられます。すべては大衆採用を個人のエージェンシーに委ねることを核に進められます。