IRI 1.5.0 – Nuovo algoritmo di selezione tip ed altri miglioramenti

Gli sviluppatori stanno lavorando costantemente per migliorare l’Implementazione di riferimento IOTA (IRI) ed avvicinarla al white paper IOTA. Ciò richiede: pianificazione, ricerca, sviluppo e test di eventuali modifiche apportate. Il team IRI di IOTA ha lavorato sodo per migliorare l’attuale algoritmo di selezione dei tip. Si annuncia l’introduzione di una completa riscrittura dell’algoritmo di selezione dei tip che fa parte della versione 1.5.0 di IRI.

Vuoi saperne di più sul Tange? Vedi The Tangle: an Illustrated Introduction (in lingua inglese).

Il nuovo algoritmo di selezione dei tip introdotto in IRI 1.5.0 cambia alcune cose. Questo post introdurrà brevemente le modifiche, ma se si desidera esaminare la nuova implementazione in dettaglio, consultare il post dettagliato (in lingua inglese).

Pesi cumulativi

Nelle precedenti versioni di IRI, è stato utilizzato un algoritmo semplificato di calcolo del peso per ciascuna transazione. A seconda della topologia del Tangle, l’approccio precedente poteva portare a risultati non molto rappresentativi del peso effettivo delle transazioni nel Tangle. L’algoritmo è ora cambiato in quello che viene proposto nel white paper IOTA. Vengono invece utilizzati i valori effettivi che rappresentano il peso di ciascuna transazione in base alla quantità di transazioni a cui fanno riferimento, direttamente e indirettamente. Mentre il nuovo approccio è computazionalmente più impegnativo, è stato sviluppato un algoritmo che consente di eseguire il calcolo in maniera efficiente in termini di memoria.

Risolto il sottografo (subgraph)

Il calcolo del peso è un processo costoso, per risolvere questo problema, è ora utilizzata una porzione fissa del grafico, chiamata sottografo (subgraph), su cui si eseguono i calcoli. Il sottografo è formato da una porzione del grafico tra una pietra miliare precedente ed i tip attuali. Quante pietre miliari corrispondono al sottografo è definito da un valore di “profondità” definito dall’utente fino a un valore predefinito di “maxDepth”. L’approccio precedente aveva anche altri inconvenienti, come la possibilità teorica che nuove transazioni sarebbero state aggiunte al calcolo più velocemente di quanto il camminatore (walker – rif. passeggiata aleatoria) fosse in grado di muoversi. Questo non accadrà con un sottografo fisso.

Ignorare le transazioni non valide

L’implementazione precedente di IRI ha interrompeva il camminatore (walker) quando rilevava una transazione non valida e restituiva l’ultima transazione valida fino a quel momento. Il camminatore a questo punto si fermava. Questo ha permesso la formazione dei famigerati soffioni. Ora è stato modificato questo comportamento in modo che il camminatore semplicemente ignori la transazione non valida, la rimuova dall’elenco degli approvatori e continua il camminamento in un’altra direzione. Ciò rende il Tangle più sicuro. Con l’approccio precedente, gli avversari avrebbero potuto sfruttare la creazione di soffioni per influenzare il tasso di conferma generale.

soffioni

Soffioni: si verificano quando un numero elevato di transazioni fanno riferimento ad una singola transazione specifica, che in genere risulta essere una pietra miliare. Ciò impedisce al Tangle di crescere organicamente, “intrappolando” le transazioni in entrata all’interno del soffione. [Immagine da IOTA StackExchange]

Nuova funzione di transizione

È stata cambiata la funzione di transizione in IRI in una funzione esponenziale. Sono state fatte ricerche e simulazioni sulla versione esponenziale della funzione e sono fiduciosi che rappresenti il ​​comportamento che vogliono nella funzione di transizione. La funzione implementa anche un parametro ‘alpha’, che dà il controllo sulla casualità della camminata. È possibile utilizzare il parametro per modificare la funzione in base alle esigenze per ottenere i migliori risultati in diverse parti del percorso.

Altri miglioramenti

Una parte molto importante dello sforzo per modificare l’algoritmo di selezione di tip è stata anche la documentazione di come funziona l’algoritmo. Come accennato in precedenza, si prega di consultare il post dettagliato.

Ultimo ma non meno importante, è stato lavorato sodo per migliorare la leggibilità e la possibilità di effettuare test sul codice. Ciò renderà più semplice il mantenimento del codice e migliorerà l’IRI. Speriamo inoltre che sia più facile per voi, membri della nostra comunità, contribuire direttamente al progetto IRI.

Monete gratis?

Se stai facendo uso del Devnet (precedentemente testnet), è stato reso semplice ottenere delle monete di prova gratuite. È stato creato un sito web di rubinetti (faucet) dove è possibile richiedere monete. Basta fornire l’indirizzo IOTA e via!

Si prega di fornire un feedback sul sito web del rubinetto sul canale #testnet Discord.

URL di testnet deprecati

Si prega di notare che gli URL testnet sono ora deprecati. Verranno rimossi tutti gli URL testnet.iota.org in futuro. Si prega invece di usare devnet.iota.org.

Note di rilascio

Una serie completa di note di rilascio saranno disponibili nella pagina di rilascio quando sarà disponibile la nuova versione.


Pubblicato in inglese da Jakub Cech alla seguente pagina su medium.

Si ringrazia Alon Elmaliah ed Alon Gal.


Per ulteriori informazioni in italiano o tedesco trovate i miei contatti a questa pagina.

Se avete trovato utile la mia traduzione, accetto volentieri delle donazioni 😉

IOTA:
CHQAYWPQUGQ9GANEWISFH99XBMTZAMHFFMPHWCLUZPFKJTFDFIJXFWCBISUTVGSNW9JI9QCOAHUHFUQC9SYVFXDQ9D

BTC:
1BFgqtMC2nfRxPRge5Db3gkYK7kDwWRF79

Non garantisco nulla e mi libero da ogni responsabilità.


Also published on Medium.