Demo · uma biblioteca estática

Uma biblioteca para apontar o seu cliente

Jogos, homebrew e trapaças que não existem, servidos com este site como uma biblioteca estática Lantern: teste um cliente sem ter um servidor próprio.

O que ela contém

Jogos fictícios para Nintendo Switch, New 3DS, PS Vita e Android, com suas fichas e ilustrações desenhadas para eles; homebrew para Switch, 3DS e Linux, dois deles assinados; trapaças no formato do Switch. Os jogos, os estúdios e as pessoas são inventados.

Seus arquivos são substitutos de alguns bytes de texto, e os pacotes de homebrew contêm só um README: nada disso é software, e nada pode ser instalado nem executado.

Apontar um cliente para ela

Passe este endereço para o seu cliente. Ele pede primeiro /.well-known/lantern ao site, não encontra e então lê lantern.json: um handshake com static (§ 21 da especificação), páginas de quatro itens para que um cliente veja várias, e cada arquivo pelo seu SHA-256.

https://lantern.boreale.dev/demo/

lantern.json · v1/apps/switch/pages/1.json · v1/titles/switch/0100ABCD00010000.json

A suíte de conformidade a verifica a cada build deste site, e ela atinge Lantern Static:

python3 conformance/run.py --static https://lantern.boreale.dev/demo/
…
Levels reached (SPEC.md § 17, draft 0.6): Lantern Static

A partir de um navegador

O GitHub Pages, que serve este site, responde a cada arquivo com Access-Control-Allow-Origin: *: uma página de outro site pode lê-la com fetch(). Faça a requisição sem credenciais e sem cabeçalhos próprios (sem Lantern-Platform: a plataforma de uma biblioteca estática está nos seus caminhos); senão o navegador envia antes uma requisição de pré-verificação, que o GitHub Pages não responde.

const hello = await (await fetch("https://lantern.boreale.dev/demo/lantern.json")).json();

O handshake e os arquivos dela não têm nenhum rastreamento: só as páginas deste site contam as visitas. Privacidade

A variante com armadilhas

Ao lado, bibliotecas estáticas quebradas de propósito, com uma falha cada, para testar clientes: um arquivo que não é o seu SHA-256, manifestos que saem da sua pasta ou das raízes da plataforma, um esquema mais novo, documentos grandes ou profundos demais, assinaturas que não se verificam, uma chave de ordem pequena. Cada uma diz o que um cliente deve fazer, e a suíte de conformidade recusa todas.