Come verificare i timestamp dei tuoi commit Git
Come verificare i timestamp dei tuoi commit Git
Un timestamp di un commit Git è un’affermazione. La verifica è la prova. In Git, le date dei commit sono metadati modificabili — git commit --date può impostare date arbitrarie, il rebase riscrive la cronologia e il force-push può riscrivere un remote condiviso. Se ti affidi ai timestamp dei commit per dimostrare la prior art, hai bisogno di qualcosa di più solido di una stringa di data nel tuo log.
Timestamp GIT colma questa lacuna ancorando gli hash dei tuoi commit Git nella blockchain di Bitcoin tramite il protocollo OpenTimestamps. È un SaaS gestito e una GitHub App: installa l’app una volta, collega un repository e ogni commit viene ancorato automaticamente ogni notte. Nessuno strumento CLI, nessun passaggio manuale del protocollo.
Questo articolo si concentra sul lato della verifica: che aspetto ha una prova, come controllarla con gli strumenti integrati di Timestamp GIT e come interpretare il risultato. Se ti serve la motivazione completa del perché questo è importante nelle controversie brevettuali, consulta Defend Your Software Against Patent Trolls with Timestamps.
Perché la verifica è importante per la prior art del tuo codice
Un timestamp ha valore solo se puoi dimostrarlo in seguito. I log Git interni di solito non superano questo test perché risiedono su server che non controlli completamente o in database che possono essere modificati. In un audit legale o in una revisione di conformità, quei log vengono spesso respinti come autoreferenziali.
Timestamp GIT genera prove crittografiche ancorate in Bitcoin. Questo cambia l’equazione:
- Pubbliche: L’ancora è incorporata nella blockchain di Bitcoin, dove chiunque può verificarla.
- Immutabili: Una volta che un blocco Bitcoin è confermato, nessuna entità — incluso Timestamp GIT — può alterare o falsificare l’ancora.
- A conoscenza zero: La verifica avviene senza rivelare il tuo codice sorgente. Il servizio legge solo gli hash dei commit, mai i file sottostanti.
- Indipendenti: La prova si basa su SHA-256 e sui dati dei blocchi Bitcoin. Non dipende dal fatto che Timestamp GIT rimanga online.
Poiché la prova coinvolge solo gli hash dei commit, chiunque può verificare che un determinato commit esistesse in un determinato momento senza accesso al tuo codice sorgente. Questo rende la verifica un passaggio pratico che puoi delegare a un avvocato, un revisore o un responsabile della conformità.
Che aspetto ha una prova di Timestamp GIT
Quando colleghi un repository alla GitHub App di Timestamp GIT, il servizio non legge il tuo codice. Legge solo gli hash dei commit. Ogni notte, un worker raccoglie gli hash in sospeso in un file manifest per repository, costruisce un albero di Merkle, crea le prove OpenTimestamps e ancora la radice di Merkle nella blockchain di Bitcoin.
Gli artefatti di prova risultanti vengono inviati a un branch timestamps dedicato o a un repository shadow. Un tipico branch timestamps può apparire concettualmente così:
timestamps/
└── 2026/
└── 08/
└── 22/
├── manifest.txt
└── manifest.txt.ots
I due file chiave sono:
manifest.txt: Il file manifest giornaliero. Raggruppa gli hash dei commit per quel repository e quella data.- File ricevuta
.ots: La prova crittografica. Contiene il digest, le attestazioni di calendario e i dati dell’header del blocco Bitcoin necessari per dimostrare che il manifest è stato ancorato in uno specifico blocco e transazione Bitcoin.
La prova è autonoma. Puoi scaricare il file .ots e verificarlo contro la blockchain di Bitcoin usando gli strumenti standard di verifica OpenTimestamps, completamente offline e senza l’infrastruttura di Timestamp GIT. Timestamp GIT ti offre il percorso semplice; la prova sottostante rimane tua.
Verifica passo passo con gli strumenti di Timestamp GIT
Timestamp GIT offre diverse superfici di verifica. Puoi usare quella più adatta al tuo flusso di lavoro.
1. Controlla la pagina di stato pubblica
Per qualsiasi repository collegato, vai a:
https://timestampgit.dev/status/{user}/{repo}
Sostituisci {user} con il tuo utente o organizzazione GitHub e {repo} con il nome del repository.
La pagina di stato mostra la longevità della prova, la data di ancoraggio più antica, la regolarità giornaliera, i dati di blocco e transazione Bitcoin e una heatmap del calendario. Da lì puoi anche scaricare un CSV di audit o un certificato PDF per una data specifica.
Per i repository pubblici, chiunque può visitare questa pagina. Per i repository privati, l’accesso è limitato da un HMAC crittografato, quindi solo gli utenti autorizzati possono visualizzare lo stato.
2. Incorpora un badge di verifica nel tuo README
I timestamp in un repository diventano più utili quando i tuoi collaboratori, clienti o revisori possono vederli a colpo d’occhio. Timestamp GIT fornisce badge Shields.io incorporabili.
Per prima cosa, ottieni lo snippet del badge dall’endpoint autenticato:
curl https://timestampgit.dev/api/badgeLink/your-org/your-repo
La risposta include un URL del badge e uno snippet markdown pronto da incollare:
{
"badgeUrl": "https://img.shields.io/endpoint?url=https://timestampgit.dev/api/statusSummary/your-org/your-repo",
"markdown": "[](https://timestampgit.dev/status/your-org/your-repo)"
}
Incolla il markdown nel tuo README.md. Il badge si collega alla pagina di stato pubblica, così chiunque può fare clic e verificare il timestamp più recente.
3. Esegui la pagina di verifica crittografica
La pagina di verifica ti offre una vista passo passo della catena di Merkle per un giorno specifico:
https://timestampgit.dev/verification/{user}/{repo}/{date}
Ad esempio, per verificare un repository con timestamp del 22 agosto 2026:
https://timestampgit.dev/verification/your-org/your-repo/2026-08-22
Questa pagina mostra la verifica della catena di Merkle multilivello. Tutto il calcolo crittografico avviene localmente nel tuo browser — Timestamp GIT non vede cosa verifichi.
Se preferisci lavorare con i dati grezzi della catena di Merkle in modo programmatico, usa l’endpoint di verifica pubblico:
curl https://timestampgit.dev/api/verify/your-org/your-repo/2026-08-22
4. Scarica un certificato PDF
Per riunioni, controversie legali o file di conformità, spesso hai bisogno di un documento portabile. Timestamp GIT può generare un certificato PDF per una data specifica.
Dalla pagina di stato, usa l’opzione di download. Oppure chiama direttamente l’endpoint del report:
curl -o timestamp-proof-2026-08-22.pdf \
https://timestampgit.dev/api/report/your-org/your-repo/2026-08-22
Il PDF include i dettagli della prova per quella data ed è formattato per la revisione umana.
5. Usa l’API pubblica per l’automazione
Se vuoi integrare la verifica nei controlli CI/CD, nelle dashboard interne o negli script di conformità, Timestamp GIT espone endpoint di stato pubblici.
Controlla l’ultimo blocco Bitcoin ancorato:
curl https://timestampgit.dev/api/statusLast/your-org/your-repo
Controlla il numero totale di commit committati e marcati:
curl https://timestampgit.dev/api/statusCount/your-org/your-repo
Controlla un riepilogo combinato che può essere consumato da Shields.io:
curl https://timestampgit.dev/api/statusSummary/your-org/your-repo
Una tipica risposta di statusSummary appare così:
{
"schemaVersion": 1,
"label": "timestamped",
"message": "42 commits",
"color": "brightgreen"
}
Interpretare i risultati della verifica e i casi limite
Una verifica riuscita significa che la seguente catena ha retto:
- L’hash del tuo commit è stato incluso nel manifest giornaliero del repository.
- Il manifest è stato incluso in un albero di Merkle.
- La radice di Merkle è stata ancorata in una transazione Bitcoin.
- Quella transazione è stata confermata in un blocco Bitcoin.
In parole povere: l’hash del commit esisteva prima dell’orario del blocco Bitcoin. Quel tempo di blocco diventa il limite superiore per la tua rivendicazione di prior art.
Prove in sospeso e ritardo di conferma
Timestamp GIT raggruppa i commit ogni notte. Dopo la creazione del batch, la rete Bitcoin deve confermare la transazione di ancoraggio. Normalmente ci vogliono alcune ore. Un commit fatto oggi potrebbe non apparire come completamente verificato fino al giorno successivo.
La pagina di stato è tua amica qui: mostra la data di ancoraggio più antica e la regolarità giornaliera, così puoi vedere se un repository è in orario o se un giorno specifico è ancora in sospeso.
Repository privati e accesso HMAC
I link di verifica per i repository privati includono un HMAC crittografato. Questo HMAC è specifico per l’istanza del server Timestamp GIT e impedisce agli utenti non autorizzati di visualizzare informazioni di stato private.
La GitHub App stessa richiede permessi appropriati per accedere ai repository privati. Senza quei permessi, Timestamp GIT non può leggere l’hash del commit in primo luogo.
Indipendenza da Timestamp GIT
I file ricevuta .ots non sono legati ai server di Timestamp GIT. Sono prove costruite sul protocollo OpenTimestamps e ancorate in Bitcoin. Anche se Timestamp GIT scomparisse, puoi comunque verificare le ricevute usando gli strumenti standard OpenTimestamps contro la blockchain di Bitcoin.
Per un registro completo di tutti i timestamp di un repository, scarica il CSV di audit:
curl -o audit-ledger.csv https://timestampgit.dev/api/audit/your-org/your-repo
Questo CSV è utile per la discovery legale, gli audit interni o per mostrare una cronologia di timestamp continua.
FAQ
Posso verificare il timestamp di un commit Git senza installare alcun software?
Sì. Timestamp GIT fornisce una pagina di verifica basata sul web dove tutti i controlli crittografici vengono eseguiti localmente nel tuo browser. Puoi anche usare la pagina di stato pubblica o il badge incorporabile per visualizzare lo stato di verifica senza alcuna installazione.
Cosa succede se Timestamp GIT cessa l’attività? Posso ancora verificare i miei timestamp?
Assolutamente. Le prove si basano sul protocollo OpenTimestamps e sono ancorate nella blockchain di Bitcoin. Puoi scaricare il file ricevuta .ots e verificarlo usando gli strumenti standard OpenTimestamps contro la blockchain di Bitcoin, indipendentemente da Timestamp GIT.
Quanto tempo ci vuole perché un commit sia verificabile?
Timestamp GIT raggruppa i commit quotidianamente e li ancora nella blockchain di Bitcoin. La conferma richiede tipicamente alcune ore dopo l’elaborazione del batch giornaliero. La pagina di stato mostra la data di ancoraggio più antica e la regolarità giornaliera.
Posso verificare i timestamp per i repository privati?
Sì, ma l’accesso è limitato. I link di verifica per i repository privati includono un HMAC crittografato, quindi solo gli utenti autorizzati possono visualizzare lo stato. La GitHub App richiede permessi appropriati per accedere ai repository privati.
Cosa succede se rimuovo la GitHub App?
Le ricevute .ots e i manifest già generati rimangono nel tuo repository e possono ancora essere verificati indipendentemente. I nuovi commit non verranno marcati automaticamente finché non reinstalli la GitHub App.
Conclusione: fidati ma verifica
La verifica è il punto in cui un timestamp diventa una prova. Timestamp GIT elimina l’onere operativo di creare quelle prove offrendoti modi semplici e adatti agli sviluppatori per controllarle: una pagina di stato pubblica, badge per il README, un visualizzatore della catena di Merkle basato sul browser, certificati PDF, CSV di audit e API pubbliche.
Non devi imparare i comandi raw di OpenTimestamps, eseguire un nodo Bitcoin o gestire manualmente le ricevute. La GitHub App gestisce la pipeline; le pagine di verifica gestiscono il resto. Ma poiché la prova sottostante è standard e ancorata a Bitcoin, non sei mai vincolato.
Se non hai ancora iniziato a marcare i timestamp, il percorso più rapido è installare la GitHub App di Timestamp GIT, collegare un repository e osservare la comparsa del primo ancoraggio notturno. Se hai bisogno di una configurazione air-gapped o self-hosted, Timestamp GIT è disponibile anche come immagine Docker con una licenza demo a tempo limitato.
Inizia su https://timestampgit.dev.
Articoli correlati
- Defend Your Software Against Patent Trolls with Timestamps
- OpenTimestamps vs Timestamp GIT: Which Is Right for Your Code?
- Set Up Automatic Git Commit Timestamping in Minutes