Vai al contenuto
buybitcoinsmart

Glossario / Protocollo e aggiornamenti

Erlay

Che cos'è Erlay?
Erlay è un metodo proposto per consentire ai nodi di confrontare quali transazioni hanno visto usando piccoli sketch, invece di annunciare ogni hash di transazione a ogni peer.

Specificato nel BIP-330.

Annunciare le transazioni è il maggiore impiego singolo della larghezza di banda di un nodo, e il costo cresce con ogni peer aggiunto. Gleb Naumenko e Pieter Wuille hanno descritto il progetto nel BIP330, dove resta una bozza: nessuna versione di Bitcoin Core lo attiva. È importante perché decide quanto può diventare economico gestire un proprio nodo.

Come funziona

Erlay affronta una ridondanza che diventa evidente appena la si conta: attualmente un nodo informa ogni suo peer di ogni transazione di cui viene a conoscenza, e la maggior parte di quei peer la conosceva già.

Il metodo attuale è il flooding. Ogni nuova transazione viene annunciata in un messaggio inv che porta un codice di tipo e un identificatore di 32 byte, quindi 36 byte per annuncio e per peer. Bitcoin Core apre per impostazione predefinita 8 connessioni in uscita per la trasmissione delle transazioni e accetta peer in entrata fino a un totale di 125, perciò una macchina ben connessa invia e riceve lo stesso breve messaggio decine di volte per qualcosa di cui sarebbe comunque venuta a conoscenza. Lo spreco è proporzionale al numero di connessioni, il che penalizza proprio il comportamento che rende più difficile dividere la rete.

Erlay conserva un po' di flooding e sostituisce il resto con la riconciliazione degli insiemi. Ogni coppia di peer tiene traccia degli annunci che non ha ancora scambiato con l'altro. Periodicamente un lato richiede uno sketch di quell'insieme. Uno sketch è un riepilogo algebrico di dimensione fissa la cui lunghezza dipende da quante differenze ci si aspetta e non da quante transazioni detiene ciascun lato, e combinare due sketch restituisce esattamente le voci che un peer ha e l'altro non ha. La biblioteca software minisketch, che Bitcoin Core porta da anni nel proprio albero dei sorgenti mentre il protocollo di trasmissione intorno a essa restava non integrato, implementa la costruzione e la decodifica.

Sbagliare la dimensione dello sketch non è fatale. Quando la decodifica fallisce perché la differenza era maggiore del previsto, i peer estendono lo sketch e riprovano invece di ricominciare da zero, così una stima imprecisa costa un po' di larghezza di banda in più invece di una risincronizzazione completa.

Dove lo vedi

Erlay non si vede ancora, ed è questa la risposta onesta per chiunque lo cerchi nel pannello di un nodo.

Quello che si vede è il problema a cui mira. Esegui getnettotals sul tuo nodo e i contatori di byte mostrano che il traffico di trasmissione domina tutto tranne il download iniziale della catena. Chi gestisce nodi su connessioni a consumo già reagisce limitando l'upload con maxuploadtarget o riducendo il numero di peer mantenuti, e entrambe le scelte indeboliscono un po' la rete per ridurre una bolletta.

È il compromesso che Erlay dovrebbe dissolvere. Se la larghezza di banda smettesse di crescere con il numero di connessioni, un nodo potrebbe mantenere in sicurezza molti più peer, e una rete densamente connessa è molto più difficile da partizionare o da isolare con un attacco eclipse. Per chi ha come unico interesse verificare i propri bitcoin invece di fidarsi di un explorer, la promessa è ristretta e reale: la stessa verifica su una connessione più economica.

Erlay vs trasmissione compatta dei blocchi

Erlay riguarda le transazioni prima che siano minate; la trasmissione compatta dei blocchi riguarda i blocchi dopo. Le due rispondono a colli di bottiglia diversi e sono state valutate con metri diversi. La propagazione dei blocchi è un problema di latenza, perché ogni secondo che un blocco passa in transito è un secondo che qualche miner passa a lavorare su una punta della catena che non esiste più, e la soluzione è arrivata nel 2016. L'annuncio delle transazioni è un problema di volume, misurato in gigabyte nell'arco di un mese e non in millisecondi, quindi nessuno ha avuto fretta, ed è per questo che la proposta è rimasta una bozza per anni.

Da non confondere con

Domande frequenti

Posso attivare Erlay in Bitcoin Core?

No. Il BIP330 è ancora una bozza e nessuna versione attiva la riconciliazione delle transazioni. La biblioteca software minisketch da cui dipende si trova nell'albero dei sorgenti di Bitcoin Core, ma il protocollo di trasmissione costruito su di essa non è stato integrato.

Erlay renderebbe il mio nodo più veloce?

Non più veloce, più economico. Mira al volume degli annunci di transazioni e non alla velocità di nulla, quindi l'effetto visibile sarebbe una cifra mensile di larghezza di banda più bassa e la libertà di mantenere più peer connessi senza pagarne il costo.

Termini correlati

Altro in Protocollo e aggiornamenti

Leggi questa pagina in inglese