収録内容
Nintendo Switch、New 3DS、PS Vita、Android 向けの架空のゲームと、その情報、専用に描いたアートワーク。Switch、3DS、Linux 向けの homebrew(うち 2 本は署名付き)。Switch の形式のチートセット。ゲーム、スタジオ、人物はすべて架空です。
ファイルは数バイトのテキストによる代替品で、homebrew のアーカイブには README しか入っていません。どれもソフトウェアではなく、インストールも実行もできません。
クライアントを向ける
このアドレスをクライアントに渡してください。クライアントはまずサイトに /.well-known/lantern を問い合わせ、見つからないので lantern.json を読みます。static を含むハンドシェイク(仕様の § 21)、複数のページに出会えるよう 4 件ずつのページ、そして SHA-256 で示される各ファイルです。
https://lantern.boreale.dev/demo/
lantern.json · v1/apps/switch/pages/1.json · v1/titles/switch/0100ABCD00010000.json
適合性テストスイートがこのサイトのビルドごとに検査し、Lantern Static に到達しています:
python3 conformance/run.py --static https://lantern.boreale.dev/demo/
…
Levels reached (SPEC.md § 17, draft 0.6): Lantern Static
ブラウザーから
このサイトを配信する GitHub Pages は、すべてのファイルに Access-Control-Allow-Origin: * を付けて応答します。別のサイトのページから fetch() で読めます。認証情報も独自ヘッダーも付けずに要求してください(Lantern-Platform も不要です。静的ライブラリのプラットフォームはパスに含まれます)。付けるとブラウザーが先にプリフライト要求を送り、GitHub Pages はそれに応答しません。
const hello = await (await fetch("https://lantern.boreale.dev/demo/lantern.json")).json();
ハンドシェイクとファイルにトラッキングは一切ありません。訪問を数えるのはこのサイトのページだけです。 プライバシー
罠入りの版
その隣に、クライアントを試すため、わざと壊した静的ライブラリを置いています。それぞれ欠陥は一つです。SHA-256 と合わないファイル、フォルダーやプラットフォームのルートの外に出るマニフェスト、より新しいスキーマ、大きすぎる・深すぎる文書、検証できない署名、小位数の鍵。どれもクライアントがすべきことを示し、適合性テストスイートはすべてを拒否します。