Why Nostr? What is Njump?
2024-03-26 22:13:02

5967820 on Nostr: #tuxdobananil #explains #nips #nip-05 # NIP-05: Mapeamento de Chaves Nostr para ...

#tuxdobananil #explains #nips #nip-05

# NIP-05: Mapeamento de Chaves Nostr para Identificadores Baseados em DNS 🌍

## Visão Geral

NIP-05 possibilita vincular chaves públicas Nostr a identificadores de internet baseados em DNS, como endereços de e-mail, permitindo uma forma mais amigável de identificar usuários na rede Nostr.

### Funcionamento

- Em eventos de tipo `0` (metadados), é possível especificar a chave `"nip05"` com um identificador de internet (parecido com um e-mail) como valor.
- O identificador é dividido em `<parte-local>` e `<domínio>`, e é realizada uma requisição GET para `https://<domínio>/.well-known/nostr.json?name=<parte-local>;`.
- A resposta deve ser um documento JSON com um mapeamento de nomes para chaves públicas em formato hexadecimal. Se a chave pública corresponder, o identificador `"nip05"` é considerado válido.

### Exemplo

Se um cliente encontra um evento como este:

```json
{
"pubkey": "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9",
"kind": 0,
"content": "{\"name\": \"bob\", \"nip05\": \"bob@example.com\"}"
}
```

Ele fará uma requisição GET para `https://example.com/.well-known/nostr.json?name=bob`, esperando uma resposta que confirme a associação da chave pública com o identificador `"nip05"`.

### Recomendações

- **Atributo `"relays"` recomendado**: Pode conter um objeto com chaves públicas como propriedades e arrays de URLs de relays como valores, ajudando clientes a saber em quais relays o usuário específico pode ser encontrado.

### Descoberta de Usuários

- Os clientes podem implementar suporte para encontrar as chaves públicas dos usuários a partir de seus identificadores "nip05", seguindo o fluxo descrito, mas invertido.

## Notas Importantes

### Prioridade das Chaves Públicas

- Os clientes devem sempre seguir as chaves públicas, não os endereços "nip05". Se o mapeamento para um endereço "nip05" mudar, o cliente não deve substituir a chave pública já seguida.

### Formato Hexadecimal

- As chaves devem ser retornadas em formato hexadecimal, não no formato `npub` do NIP-19.

### Sugestão para Implementação de Descoberta de Usuário

- Um cliente pode permitir que os usuários procurem por outros perfis digitando identificadores "nip05" em uma caixa de pesquisa, fazendo as consultas apropriadas para obter uma chave pública e sugerir isso ao usuário.

### Tratamento de Identificadores de Domínio

- Os clientes podem tratar o identificador `_@domínio` como o identificador "raiz" e optar por exibi-lo apenas como `<domínio>`.

### Racional para o Formato `/.well-known/nostr.json?name=<parte-local>`

- Isso suporta tanto servidores dinâmicos que geram JSON sob demanda quanto servidores estáticos com um arquivo JSON que pode conter múltiplos nomes.

### Acesso por Aplicativos JavaScript

- Para garantir a validação por aplicativos JS em navegadores, os servidores devem servir `/.well-known/nostr.json` com o cabeçalho HTTP `Access-Control-Allow-Origin: *`.

### Restrições de Segurança

- O endpoint `/.well-known/nostr.json` **NÃO DEVE** retornar redirecionamentos HTTP, e os clientes **DEVEM** ignorar quaisquer redirecionamentos dados pelo endpoint.
Author Public Key
npub1uykpm4luredxa7spwas287eewlhykl79rxauagl88ufhggvyk4tsl7w258