Snowflake di Discord: cosa significa il lungo numero ID
Uno snowflake è il numero unico a 64 bit che Discord assegna a ogni utente, server, canale, ruolo e messaggio. I primi 42 bit contengono un timestamp, quindi ogni snowflake indica quando è stato creato, fino al millisecondo.
Cos'è uno snowflake
Ogni volta che copi un ID in Discord, stai copiando uno snowflake. Ha questo aspetto: 175928847299117063, un numero intero lungo tra 17 e 19 cifre. Discord usa lo stesso formato per utenti, server (chiamati guild nell'API), canali, ruoli, messaggi, emoji e altro.
Il formato deriva da uno schema usato per la prima volta da Twitter. Lo scopo è creare ID unici e in ordine approssimativo di tempo su molte macchine, senza che si chiedano a vicenda il numero successivo.
Come sono organizzati i bit
Uno snowflake è diviso in quattro parti, da sinistra:
- 42 bit di timestamp: millisecondi dal primo secondo del 2015 (l'epoca di Discord, 1420070400000).
- 5 bit di ID del worker e 5 bit di ID del processo: quale macchina e quale processo di Discord lo hanno creato.
- 12 bit di incremento: un contatore che sale per ogni ID creato da quel processo nello stesso millisecondo.
Per leggere l'ora di creazione, sposta il numero di 22 bit a destra e aggiungi l'epoca. Si ottiene un timestamp Unix in millisecondi. Per questo puoi sapere quando è stato creato un server o un messaggio senza chiederlo a nessuno.
Perché ai proprietari interessa
Incontrerai gli snowflake soprattutto quando attivi la Modalità sviluppatore (Impostazioni utente, Avanzate) e fai clic destro su qualcosa per Copia ID. Le persone chiedono gli ID nelle segnalazioni di bug, nella configurazione dei bot e quando rimuovono un utente malintenzionato che ha cambiato nome. I nomi cambiano, un ID no.
Due note pratiche:
- Gli ID sono identificatori pubblici, non segreti. Conoscere l'ID di un canale non dà accesso a nessuno.
- Poiché sono più grandi di quanto molti programmi memorizzino come numero normale, l'API di Discord li invia come stringhe. I fogli di calcolo che arrotondano i numeri lunghi possono corrompere un ID, quindi tienili come testo.
Il nostro decodificatore di snowflake gratuito trasforma un ID nella sua data di creazione, direttamente nel browser.
Come Noxyr usa gli ID
Noxyr salva gli ID utente di Discord dove una funzione ne ha bisogno: chi apre un ticket, i clienti delle fatture, le partecipazioni ai giveaway, i voti dei sondaggi, gli autori delle recensioni e le blacklist. La dashboard conserva anche il tuo ID, il nome utente e l'avatar per l'accesso. La documentazione su dati e privacy elenca esattamente cosa viene conservato.
Alcune funzioni richiedono un ID come input. Per esempio, il proprietario di un bot personalizzato può trasferire il tempo residuo a un'altra persona tramite il suo ID utente, e il bot mantiene il proprio ID utente qualunque sia il numero di volte in cui lo rinomini. Per questo ruoli e sovrascritture legati a esso continuano a funzionare dopo un cambio di marchio.
Termini correlati
Un ID applicazione è anch'esso uno snowflake, e lo è ogni ID di guild. Lo sharding usa perfino l'ID della guild per decidere quale shard riceve un server, vedi sharding.
Domande frequenti
Come trovo un ID su Discord?
Attiva la Modalità sviluppatore in Impostazioni utente, Avanzate. Poi fai clic destro su un utente, un canale, un ruolo o un server e scegli Copia ID.
Posso ricavare la data di creazione da un ID?
Sì. Sposta il numero di 22 bit a destra e aggiungi 1420070400000 per ottenere un'ora Unix in millisecondi. Lo strumento decodificatore di snowflake lo fa per te.
Un ID di Discord è privato?
No. Gli ID sono identificatori pubblici e da soli non danno accesso a nulla. Tratta come segreti i token, non gli ID.