Condividi questo articolo

Come il livello P2P di Bitcoin ha ottenuto un aumento di velocità nell'ultima versione CORE

Lo sviluppatore finanziato dal MIT Cory Fields parla del suo lavoro di revisione del codice per il livello peer-to-peer di Bitcoin Core, un compito tutt'altro che facile.

Spedometer
Campi di Cory
Campi di Cory

"Satoshi ci ha lasciato un blob monolitico di codice di base."

La storia continua sotto
Non perderti un'altra storia.Iscriviti alla Newsletter Crypto for Advisors oggi. Vedi Tutte le Newsletter

Era il modo in cui lo sviluppatore Bitcoin Cory Fields diceva che, nonostante l'innovazione che spesso gli viene attribuita, il codice di Bitcoin Core è un po' un pasticcio dietro le quinte.

È un problema con cui Fields e altri si confrontano almeno dal 2015, quandoha presentato i suoi piani per spostare ONE parte del codice: il livello peer-to-peer.

Il problema che gli sviluppatori incontrano spesso è che i componenti non sono tutti nettamente separati. Quindi, se gli sviluppatori cambiano qualcosa che dovrebbe avere un impatto solo su ONE parte di Bitcoin e sul suo funzionamento, ha detto Fields, potrebbe avere un impatto involontario su un'altra, ad esempio la convalida, il mempool, il portafoglio o il p2p. Per ONE , questo rende più difficile per i nuovi Collaboratori Bitcoin Imparare le basi.

Quindi, in progetti come Fields econsenso di lib (un progetto in corso per consentire alle implementazioni alternative di rimanere in linea con la rete Bitcoin ), l'obiettivo è quello di separare il codice in parti più distinte nel tentativo di rendere più semplice, e meno necessario, per gli sviluppatori comprendere come i pezzi si incastrano tra loro.

Fields, il cui lavoro è finanziato dalla Digital Currency Initiative del MIT, ha lavorato in particolare per svelare la base di codice peer-to-peer.

Gran parte del suo lavoro fa la sua prima apparizione in Bitcoin Core ultima versione del software.

Fields ha detto a CoinDesk:

"Per quanto ne so, questa è la prima revisione su larga scala del codice peer-to-peer."

Ha menzionato, tuttavia, che nel tempo molti sviluppatori, come Jonas Schnelli e Matt Corallo, hanno contribuito al livello e, cosa importante, molti altri hanno contribuito a rivedere e testare le modifiche.

Il livello peer-to-peer si occupa delle connessioni tra le migliaia di nodi Bitcoin sulla rete (forse più di 50.000, tuttavia, è difficile ottenere conteggi esatti), che "parlano" costantemente tra loro, passandosi informazioni quando gli utenti inviano bitcoin o i minatori creano nuovi blocchi.

Da scoprire di bug

ONE aspetto complicato è che la rete Bitcoin è valutata circa 19 miliardi di dollari, il che significa che le modifiche al codice sottostante devono essere apportate con estrema cautela.

Per questo e altri motivi, il refactoring T è stato un processo facile. Nemmeno per Fields, che è ONE dei più attivo Collaboratori di Bitcoin CORE. ("Trascorro quasi tutte le mie ore di veglia su Bitcoin", ha affermato.)

Per prima cosa, ha provato a creare un livello separato partendo da zero. Quel tentativo "è fallito miseramente".

Il suo approccio successivo, volto a migliorare la base di codice esistente, ha probabilmente funzionato meglio del previsto, portando alla Da scoprire un bug tipico dell'“era Satoshi”.

"Quando ho iniziato a suddividere le cose, ho notato qualcosa di strano nell'utilizzo della larghezza di banda di Core durante il download del blocco iniziale", ha affermato Fields.

Il problema era che, quando un nodo scaricava blocchi da un altro nodo, la velocità con cui i blocchi venivano trasmessi a volte era elevata, altre volte lenta, e a livelli inaspettati.

Approfondendo ulteriormente, lui e altri sviluppatori hanno determinato che i nodi si sarebbero ostinatamente rifiutati di inviare dati ed elaborarli allo stesso tempo (anche se questa è una semplificazione eccessiva). Il nodo avrebbe eseguito solo ONE processo alla volta.

Correzione della velocità

La soluzione a cui è finalmente giunto il team ha fatto il suo debutto nella recente versione del codice di Bitcoin CORE , modificando la velocità con cui i nodi possono trasmettersi informazioni a ONE .

"In particolare, il livello p2p ottiene un'enorme accelerazione", ha affermato Fields.

Ha eseguito alcuni test per confrontare l'ultima versione Bitcoin (0.13.2) con la nuova versione migliorata (0.14.0), esaminando i nodi distribuiti nel cloud su istanze Amazon EC2 con due CPU e 4 GB di RAM.

I test hanno mostrato un raddoppio della velocità, almeno confrontando le prestazioni di invio dei dati tra due nodi v0.13.2 rispetto a due nodi v0.14.0.

nodo, confronti
nodo, confronti

L'unica avvertenza è che, secondo Fields, questo potrebbe comportare un miglioramento delle prestazioni di BIT meno del doppio sulla rete reale.

Benefici duraturi

Ora, il livello peer-to-peer è in gran parte separato dal resto.

Vale la pena ripetere che, a parte i miglioramenti delle prestazioni sopra menzionati, la maggior parte dei cambiamenti T saranno notati dagli utenti, ma rappresentano piuttosto un vantaggio per gli sviluppatori.

Detto questo, la speranza è che possano avere un impatto a lungo termine.

"Spero che questo ci consenta di migliorare il p2p a un ritmo più veloce", ha affermato Fields.

Ad esempio, sarebbe stato più difficile apportare le modifiche incluse nell'ultima versione di CORE se Fields non avesse già lavorato per isolare il codice.

Ha detto:

"[T' era una modifica relativamente semplice che poteva essere apportata in tempo per la versione 0.14, cosa che prima sarebbe stata molto più complicata."

Chiamata rapida immagine tramite Shutterstock. Immagine di Cory Fields tramite CoinDesk

Alyssa Hertig

Giornalista tecnologica collaboratrice di CoinDesk, Alyssa Hertig è una programmatrice e giornalista specializzata in Bitcoin e Lightning Network. Nel corso degli anni, il suo lavoro è apparso anche su VICE, Mic e Reason. Attualmente sta scrivendo un libro che esplora i dettagli della governance Bitcoin . Alyssa possiede alcuni BTC.

Alyssa Hertig