Identificadores e tempo

Decodificador de Snowflake

Escolha o layout do sistema que emitiu o número.

Decodificador de Snowflake

ID Snowflake decimal

Relatório

Os cálculos ficam no navegador; as entradas não são enviadas.

Opções

Um ID decimal, até 256 caracteres. Sem URLs ou listas.

Twitter snowflake-2010: 41/5/5/12. Nó alto = datacenter, baixo = worker; bit de sinal reservado a 0. Ver fonte

Digite um ID ou carregue um exemplo.

O Decodificador de Snowflake ajuda quando o log registra apenas um identificador, sem uma data de criação separada. Antes de interpretar o resultado, confira o esquema de origem. O mesmo número pode gerar datas plausíveis sob épocas diferentes; uma data que parece correta não identifica por si só a plataforma emissora.

Por que usar este Decodificador de Snowflake?

Enxergar a diferença entre os formatos

Este Decodificador de Snowflake distingue o Twitter original arquivado do Discord. São 41 ou 42 bits de tempo, além de significados diferentes para as duas metades do nó. A época e a fonte ficam disponíveis para conferir as premissas antes de usar o horário em uma investigação.

Um identificador separado em tempo, duas metades do nó e sequência, com um relógio ligado ao campo temporal.

Recriar um caso com todos os bits

Horário, nó e sequência fixos produzem o mesmo identificador de teste. Compare os grupos binários com as máscaras da aplicação. No layout personalizado, mover uma fronteira ajuda a entender qual campo recebe os bits, sem alterar registros do sistema.

Dois layouts contínuos de bits com fronteiras diferentes entre tempo, nó e sequência.

Três detalhes antes de começar

01

Confirme o esquema emissor

Twitter original corresponde ao código arquivado snowflake-2010. Discord usa o formato sem sinal da documentação oficial. Para um serviço próprio, obtenha sua época e as larguras dos campos; essas informações não vêm no ID.

02

Confira milissegundos e nó combinado

Época e horário de geração usam milissegundos Unix. O nó combinado é parte alta × 32 + parte baixa. No Twitter, são datacenter e worker; no Discord, worker e processo. Não use diretamente um timestamp em segundos.

03

Espere o resultado atualizado

A decodificação automática espera 350 ms após a última alteração. Ao desligá-la, use o botão ou Ctrl/Cmd + Enter. Alterações bloqueiam a exportação até um novo cálculo bem-sucedido. A geração de teste sempre exige uma ação explícita.

Os campos dentro do número

Preservar até o último dígito

A ferramenta lê a string decimal como BigInt. Com Discord, 175928847299117063 resulta em 2016-04-30T11:18:25.796Z, nó 32 e sequência 7. IDs vizinhos continuam diferentes mesmo quando um número de ponto flutuante os arredondaria para o mesmo valor.

Relacionar horário e grupos de bits

O relatório mostra UTC, timestamp Unix em milissegundos e distância desde a época. Os grupos binários preservam zeros iniciais. Twitter exibe também o bit de sinal reservado a zero; Discord utiliza os 64 bits completos.

Configurar uma época personalizada

O layout contínuo segue tempo, nó e sequência, dos bits mais altos aos mais baixos. Nó ou sequência podem ter zero bits e então aceitam apenas o valor zero. Isso permite testar a distribuição do seu serviço com limites explícitos.

Gerar uma massa de teste repetível

O gerador de Snowflake ID combina os campos e já decodifica o resultado para conferência. Horário vazio usa o relógio no momento da execução; um valor explícito permite repetir o caso. Copie o ID ou baixe o relatório JSON com os parâmetros.

O que o resultado permite concluir

Sem adivinhação da plataforma
O número não informa qual época usa. Uma configuração errada pode gerar uma data convincente sem apresentar erro. Twitter original também não representa todas as implementações internas atuais do X.
Milissegundos e no máximo 64 bits
Apenas campos contínuos na ordem tempo → nó → sequência são aceitos. O tempo ocupa pelo menos um bit. Segundos, microssegundos, posições espalhadas e outras ordens precisam de outro modelo de decodificação.
Um inteiro decimal por vez
Espaços nas bordas e zeros iniciais são permitidos. IDs negativos, frações, notação científica, hexadecimal, URLs e listas são recusados. Cada entrada numérica tem limite de 256 caracteres; inteiros exportados permanecem strings para evitar arredondamento posterior.
Teste não significa unicidade
Parâmetros iguais geram IDs iguais. Não há distribuição de workers, contador persistente ou coordenação de relógios que retrocedem. Zero e horários futuros podem ser testados se couberem no layout, sem provar que um objeto existe.
Sem consulta de contas ou mensagens
Os valores internos não revelam nomes, conteúdo ou localização física. Nenhuma API verifica a existência do objeto. Horários fora da faixa representável por Date geram erro explícito, em vez de serem cortados.

Decodificador de Snowflake: dúvidas

Como obtenho a data de criação de um ID do Discord?

Selecione Discord e cole a string original. O Decodificador de Snowflake remove os 22 bits inferiores e soma 1420070400000 milissegundos. O UTC exibido corresponde ao horário codificado, sem confirmar independentemente uma mensagem.

Qual é a diferença entre as épocas do Twitter e do Discord?

Twitter original começa em 1288834974657 ms; Discord, em 1420070400000 ms. O campo temporal também muda: 41 contra 42 bits. Trocar apenas a época não considera toda a diferença entre os formatos.

Por que as metades do nó vão até 31 e a sequência até 4095?

Cada metade tem 5 bits, de 0 a 31. Juntas formam 10 bits, de 0 a 1023. A sequência tem 12 bits, de 0 a 4095. Valores maiores são recusados para não invadir os bits do campo vizinho.

Posso usar a época do meu próprio serviço?

Sim. Escolha o layout personalizado, informe a época Unix com sinal em milissegundos e as três larguras. O horário a gerar não pode anteceder a época, e a diferença precisa caber no campo de tempo.

Por que meu código JavaScript retorna outro resultado?

Number não representa exatamente todos os inteiros acima de 2^53 − 1. Mantenha o ID como string e use BigInt nas operações. Se uma planilha ou parser já arredondou os dígitos finais, será necessário recuperar a string de origem.

Dúvida sobre o seu layout?

Confira o próximo ID

O Decodificador de Snowflake mantém as premissas junto ao resultado. Confira o horário e os campos inferiores antes de guardar o relatório no registro do diagnóstico.