Generador y decodificador de Snowflake ID

Genera y decodifica Snowflake ID de 64 bits con las épocas de Twitter o Discord, directamente en tu navegador. Nada de lo que introduces sale de tu dispositivo.

El generador de Snowflake ID funciona por completo en tu navegador. Los ID, marcas de tiempo y valores de campo que introduces o decodificas nunca salen de tu dispositivo y nada se sube a ArrayKit.

Abre el generador de ULID

Acerca de Snowflake ID

El generador de Snowflake ID construye Snowflake ID de 64 bits como lo hacen Twitter y Discord: una marca de tiempo en milisegundos, un id de worker, un id de proceso y una secuencia por milisegundo empaquetados en un solo BigInt. Elige el preset de época de Discord o Twitter, o escribe tu propia época en milisegundos Unix, y luego define la marca de tiempo y los valores de campo para acuñar un ID. Cambia a Decodificar para pegar cualquier Snowflake y ver la marca de tiempo exacta en milisegundos, su hora ISO y los bits de worker, proceso y secuencia bajo la época que elegiste. Es útil para descubrir mediante ingeniería inversa cuándo se publicó un mensaje de Discord, reproducir un ID en un fixture de pruebas o comprobar la coherencia de un esquema de id distribuido. Todo el desplazamiento de bits ocurre en tu dispositivo; los ID y marcas de tiempo que introduces nunca se suben.

Características

Cómo usar Snowflake ID

  1. Elige Discord, Twitter o una época personalizada
  2. En Generar, define la marca de tiempo y los valores de worker, proceso y secuencia
  3. Copia el Snowflake ID de 64 bits resultante
  4. Cambia a Decodificar y pega un Snowflake para recuperar su marca de tiempo y campos

Ejemplo

Entrada

175928847299117063  (Discord epoch)

Salida

timestamp: 2016-04-30T11:18:25.796Z
worker: 1  process: 0  sequence: 7

Decodificar un Snowflake de Discord recupera cuándo se creó y sus bits de campo.

Errores comunes y solución de problemas

Preguntas frecuentes

¿Qué es un Snowflake ID?
Un Snowflake es un id de 64 bits que usan Twitter y Discord que empaqueta una marca de tiempo en milisegundos, un id de worker (máquina), un id de proceso y una secuencia por milisegundo en un solo número ordenable, así que los id son únicos y están aproximadamente ordenados por tiempo sin un contador central.
¿Cómo averiguo cuándo se envió un mensaje de Discord a partir de su ID?
Pega el id del mensaje o usuario en Decodificar con la época de Discord seleccionada. La herramienta desplaza los 42 bits de marca de tiempo, suma la época de Discord (1420070400000 ms) y muestra la hora exacta de creación en ISO y milisegundos Unix.
¿Cuál es la diferencia entre las épocas de Twitter y Discord?
Ambas disposiciones tienen los mismos anchos de bits, pero cuentan milisegundos desde puntos de inicio distintos: Twitter usa 1288834974657 (nov 2010) y Discord usa 1420070400000 (ene 2015). Decodificar con la equivocada desplaza cada marca de tiempo por esa diferencia.
¿Por qué worker y proceso están limitados a 31 y la secuencia a 4095?
La disposición da 5 bits a cada uno de worker y proceso (2^5 − 1 = 31) y 12 bits a la secuencia (2^12 − 1 = 4095). Los valores por encima de esos límites desbordarían al siguiente campo, así que el generador los rechaza.
¿Puedo usar una época personalizada para mi propio servicio?
Sí. Elige el preset Personalizado e introduce tu época en milisegundos Unix. Generar y Decodificar usan entonces ese valor, lo que te permite trabajar con cualquier esquema de estilo Snowflake que mantenga la disposición de bits 42/5/5/12.
¿Se envían a algún sitio los ID que genero o decodifico?
No. Cada desplazamiento de bits se ejecuta en tu navegador con BigInt. Las marcas de tiempo, ids y valores de campo que escribes o pegas nunca salen de tu dispositivo y no se suben a ArrayKit.

Herramientas relacionadas

Todas las herramientas de ArrayKit