Negentropy: Definir protocolo de reconciliação
Negentropy é um protocolo de reconciliação de conjunto para descobrir quais eventos um lado possui e o outro não, sem reenviar o conjunto de dados completo.
Como funciona
Em vez de solicitar cada evento que corresponda a um filtro, a negentropia compara dois conjuntos classificados e restringe apenas os intervalos que diferem. O protocolo troca resumos de intervalos compactos e recorre a listas de ID explícitas apenas quando necessário.
- Ordenação: Ambos os lados classificam os registros por carimbo de data/hora e depois por ID
- Comparação de intervalos: eles trocam impressões digitais por intervalos de registros
- Refinamento: intervalos incompatíveis são divididos até que os IDs ausentes reais sejam limpos
Por que é importante
A sincronização Nostr tradicional usa filtros since baseados em carimbo de data/hora, que podem perder eventos devido a:
- Desvio de clock entre cliente e relay
- Vários eventos com carimbos de data/hora idênticos
- Eventos chegando fora de ordem
Negentropy resolve esses problemas comparando conjuntos de eventos reais em vez de confiar em carimbos de data/hora.
Uso prático
- Recuperação de DM: os clientes podem detectar e buscar mensagens diretas perdidas, mesmo com carimbos de data/hora antigos
- Feed Sync: Garante a sincronização completa da linha do tempo em relays
- Sincronização offline: recupera com eficiência após períodos de desconexão
O detalhe útil da implementação é que muitos clientes não substituem assinaturas normais pela negentropia. Eles o usam como um caminho de reparo. Damus, por exemplo, manteve o carregamento normal do DM e adicionou negentropia na atualização manual para recuperar mensagens que o fluxo normal perderia.
Compensações
Negentropy requer suporte de ambos os lados e adiciona complexidade de protocolo além do uso padrão do REQ. É mais útil quando a correção é mais importante do que o esforço mínimo de implementação.
Em ambientes mistos, os clientes ainda precisam de um comportamento de fallback elegante porque nem todo relay oferece suporte ao protocolo.
Fontes primárias:
Mencionado em:
- Boletim informativo nº 6: Damus envia negentropia para sincronização confiável de DM
- Boletim informativo nº 12
Veja também: