담긴 내용
Nintendo Switch, New 3DS, PS Vita, Android용 가상의 게임과 그 정보, 이를 위해 그린 아트워크. Switch, 3DS, Linux용 홈브류(그중 둘은 서명됨). Switch 형식의 치트 세트. 게임, 스튜디오, 사람은 모두 지어낸 것입니다.
파일은 몇 바이트짜리 텍스트로 된 자리 표시자이고, 홈브류 압축 파일에는 README만 들어 있습니다. 어느 것도 소프트웨어가 아니며, 설치하거나 실행할 수 있는 것은 없습니다.
클라이언트 연결하기
클라이언트에 이 주소를 주세요. 클라이언트는 먼저 사이트에 /.well-known/lantern을 요청하고, 없으므로 lantern.json을 읽습니다. static이 들어 있는 핸드셰이크(명세 § 21), 여러 페이지를 만나도록 네 항목씩 나눈 페이지, 그리고 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과 맞지 않는 파일, 자기 폴더나 플랫폼 루트 밖으로 나가는 매니페스트, 더 새로운 스키마, 너무 크거나 너무 깊은 문서, 검증되지 않는 서명, 작은 위수의 키. 각각 클라이언트가 해야 할 일을 알려 주며, 적합성 테스트 모음은 모두 거부합니다.