Snapshot locali in arrivo sul #Tangle di #IOTA

Antonio Nardella
Sep 1, 2018 · 6 min read
Image for post
Image for post

Snaphot locali: Un nuovo articolo dal blog degli sviluppatori della IOTA Foundation. In questo caso Hans Moog ci aggiorna sullo stato degli snapshot locali.

Un aggiornamento dello stato di sviluppo

Negli ultimi mesi, la rete IOTA ha visto un aumento significativo dell’attività, in quanto sempre più sviluppatori stanno iniziando ad implementare soluzioni basate sul Tangle. Mentre questo è uno sviluppo molto promettente, che riflette la crescente adozione del protocollo IOTA, comporta anche un aumento delle dimensioni del database, questo può essere problematico per i nodi con risorse hardware limitate.

La Fondazione IOTA esegue regolarmente snapshot globali, in base alle quali la cronologia delle transazioni viene eliminata ed i saldi risultanti vengono consolidati in un nuovo stato di genesi, consentendo così il riavvio dei nodi con un database vuoto. Tuttavia, questo modo di gestire una dimensione di contabilità crescente sta diventando sempre meno pratico in quanto impone di:

  • Fermare temporaneamente il coordinatore

La soluzione: Snapshot locali

Per risolvere questo problema, hanno lavorato sull’implementazione di una funzione chiamata Snapshot locali. Questa è sempre stata una parte centrale della Roadmap del protocollo IOTA. L’implementazione iniziale sarà ora testata internamente e ci terrannno aggiornati con informazioni sui passaggi successivi, ma prima è necessario esaminare tutte le modifiche implementate e raccogliere metriche sufficienti sul comportamento di questa nuova funzionalità.

Output della console durante lo snapshot locale
Output della console durante lo snapshot locale

Output della console durante lo snapshot locale

Cosa significa questo per gli operatori di nodi?

Prima di approfondire gli aspetti tecnici degli snapshot locali, troviamo qui un breve riepilogo delle modifiche apportate da questa nuova funzionalità per operatori dei nodi:

  • Durante l’attivazione di un nuovo nodo è possibile eseguire la sincronizzazione in base ad un file di snapshot locale di piccole dimensioni, che consente di sincronizzare completamente i nodi in pochi minuti (anziché eseguire il bootstrap del nodo con un file di database di grandi dimensioni)

Come funziona?

Per comprendere il funzionamento degli snapshot locali, dobbiamo prima chiarire alcune cose sul funzionamento del Tangle:

  • Il Tangle è una struttura di dati che ha, statisticamente parlando, delle incertezze ai suoi tip (nuove transazioni) ma acquisisce certezza con il passare del tempo (n.d.t. per approfondire consiglio di leggere #IOTA #Tangle transazione, conferma e consenso)

Il principio di base degli snapshots locali è relativamente facile da comprendere e può essere suddiviso in diversi aspetti:

Elimnazione delle vecchie transazioni e mantenimento del saldo

  • Per prima cosa selezioniamo una transazione confermata sufficientemente vecchia e usiamo questa transazione come “àncora” per lo snapshot locale

Punti di ingresso solidi (sincronizzazione rapida per i nuovi nodi)

Mentre l’eliminazione delle vecchie transazioni non è un problema per i nodi che sono già completamente sincronizzati con la rete, pone un problema ai nuovi nodi che tentano di accedere alla rete, poiché non sono più in grado di recuperare facilmente la cronologia completa delle transazioni risalente all’ultima istantanea globale.

Anche supponendo che siano in grado di recuperare la cronologia completa contattando i permanodes (nodi permanenti) per ottenere le transazioni mancanti, ci vorrebbe ancora molto tempo per raggiungere l’ultimo stato del libro mastro. Questo problema non è nuovo ed è uno dei motivi per cui molti operatori di nodi eseguono il bootstrap dei loro nodi con una copia del database da un altro nodo sincronizzato.

Per risolvere questo problema, utilizziamo i file dello snapshot locale non solo come modo per mantenere lo stato del nodo ma anche per consentire ai nuovi nodi di iniziare le loro operazioni in base ad esattamente lo stesso file (che può essere condiviso dalla comunità e dall’IF ad intervalli regolari).

Per poter eseguire il bootstrap di un nuovo nodo con un file di snapshot locale, è necessario archiviare qualche altro dettaglio rispetto ai soli saldi:

  • Prima di tutto un nuovo nodo in fase di sincronizzazione deve sapere a che punto può smettere di solidificare una catena di transazioni e considerare esclusivamente il solido del sub-tangle. Per essere in grado di farlo, determiniamo quale delle transazioni che abbiamo cancellato, hanno approvatori che non sono rimasti orfani ed archiviamo i loro hash in un elenco di “punti di ingresso solidi”

Questo ci consente di utilizzare i file di snapshot locali come meccanismo di bootstrap per ottenere un nuovo nodo sincronizzato molto rapidamente (in pochi minuti), che allo stesso tempo è molto più facile da fornire e recuperare rispetto ad una copia dell’intero database.

Pietre Miliari viste (sincronizzazione ancora più veloce)

  • Sebbene punti di ingresso solidi ci consentano di interrompere il processo di consolidamento il prima possibile, ci vuole ancora un po’ per conoscere tutte le fasi successive che si sono verificate dopo il punto di cut-off scelto

Permanodes

Poiché l’eliminazione dei dati sarà controllata da una semplice impostazione di configurazione, sarà ora possibile gestire dei permanodes (nodi permanenti) che mantengono l’intera cronologia delle transazioni, impossibile fino ad ora a causa del fatto che gli snapshot globali erano un evento a livello di rete.


L’intera procedura di acquisizione di snapshot locali viene quindi ripetuta automaticamente per consentire ai nodi di funzionare con un requisito di spazio relativamente costante senza interventi di manutenzione non necessari.

Sommario

L’imminente funzionalità di Local Snapshots non risolverà solo i problemi di spazio derivanti dalla crescente adozione di IOTA, ma semplificherà anche la configurazione dei nuovi nodi e consentirà alle organizzazioni ed ai membri della comunità di operare permanodes.

Questa funzionalità sarà aperta per i beta test nelle prossime settimane. Ulteriori informazioni saranno pubblicate nel canale #snapshots sul Discord di IOTA.
Grazie ad Alon Gal.


Il testo originale in lingua inglese si trova qui: https://blog.iota.org/coming-up-local-snapshots-7018ff0ed5db


Da oggi è possibile dare il vostro supporto su Patreon https://www.patreon.com/antonionardella

Per ulteriori informazioni in italiano o tedesco trovate i miei contatti a questa pagina.
Se avete trovato utile la mia libera traduzione, accetto volentieri delle donazioni ;)

IOTA:
QOQJDKYIZYKWASNNILZHDCTWDM9RZXZV9DUJFDRFWKRYPRMTYPEXDIVMHVRCNXRSBIJCJYMJ9EZ9USHHWKEVEOSOZB
BTC:
1BFgqtMC2nfRxPRge5Db3gkYK7kDwWRF79

Non garantisco nulla e mi libero da ogni responsabilità.


Originally published at Antonio Nardella.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store