Compartir este artículo

Démêler Bitcoin: Pourquoi Russell Yanofsky décortique le plus ancien code cryptographique

Un développeur travaille discrètement à la division de la base de code de Bitcoin – un effort visant à donner aux utilisateurs plus de flexibilité et aux développeurs plus de clarté.

Les développeurs utilisent souvent des mots comme « monolithique », « blob » et « emmêlé » pour décrire le code qui sous-tend Bitcoin.

Ces mots illustrent la difficulté de compréhension et d'utilisation du code, et ce n'est pas vraiment rassurant pour un réseau qui finance 61 milliards de dollars d'investissements. Cela ne veut pas dire que Bitcoin ne fonctionne T – il fonctionne – mais l'état de la base de code laisse à désirer, tant pour les utilisateurs qui souhaiteraient plus de flexibilité que pour les développeurs qui souhaitent l'améliorer.

CONTINÚA MÁS ABAJO
No te pierdas otra historia.Suscríbete al boletín de Crypto for Advisors hoy. Ver Todos Los Boletines

Ainsi, bien que des changements tels que l'optimisation du code Segregated Witness (SegWit) et la philosophie des mises à niveau dites « hard fork » aient attiré le plus d'attention ces derniers temps, plusieurs développeurs Bitcoin travaillent sous le radar. démêlerL'architecture désordonnée du Bitcoin.

Russell Yanofsky de Chaincode, pour ONE, tente de s'attaquer à une partie du problème avec ce qu'on appelle la « séparation des processus » dans le code Bitcoin CORE , l'option logicielle la plus utilisée.

Yanofsky a déclaré à CoinDesk:

Bitcoin est une base de code ancienne. Elle a beaucoup évolué au fil du temps. Si nous avions tout écrit de zéro, nous ferions probablement les choses différemment sur de nombreux aspects. Mais comme nous possédons cet héritage de code, nous devons trouver des moyens de le maintenir.

Laissez tomber le monolithe

Pour commencer à comprendre la technique de séparation des processus de Yanofksy, vous devez d'abord comprendre que le logiciel Bitcoin CORE est composé de nombreux éléments différents et de deux soi-disant « processus » qui sont regroupés de manière, selon certains, aléatoire.

Le premier processus s'appelle « bitcoind » et, selon Yanofsky, est composé de plusieurs éléments : le code peer-to-peer, qui connecte les nœuds du réseau ; le code de validation, qui vérifie si les transactions et les blocs qu'un nœud reçoit sont valides ; et le code du portefeuille, qui stocke les clés privées d'un utilisateur.

Le deuxième processus, « bitcoin-qt », exécute toutes ces choses avec l’ajout d’une interface utilisateur afin que les utilisateurs ayant peu d’expérience technique puissent exécuter un nœud complet sans utiliser la ligne de commande.

Yanofsky pense qu'il serait préférable de séparer certains aspects du code. Pour ce faire, il crée un nouveau processus, « bitcoin-walletd », qui sépare le code du portefeuille de bitcoind. Il supprime également tout le code de bitcon-qt, à l'exception de l'interface utilisateur.

Ses diapositives d'une présentation BitDevs à New York cette semaine montrent la différence de structure :

diapositive 1
diapositive 1
diapositive 2
diapositive 2

À haut niveau, il peut sembler que les différents processus Bitcoin soient déjà complètement séparés, mais en termes de codage, ce n'est T. Yanofsky construit donc désormais des barrières entre les différents composants.

De cette façon, une fois le code terminé, la partie portefeuille ne pourra pas toucher d’autres parties du code.

Mélanger et assortir

Alors, qu'est-ce que cela signifierait pour les utilisateurs ? Plus de flexibilité, surtout.

Les utilisateurs peuvent déplacer des éléments comme un puzzle, en mélangeant et en associant les pièces que Yanofsky sépare. Par exemple, si le portefeuille n'est pas lié au nœud, les utilisateurs peuvent l'utiliser avec n'importe quel nœud Bitcoin .

« Peut-être que si vous utilisez un portefeuille plus ancien qui ne prend T en charge les nouvelles fonctionnalités et que vous ne voulez T vous en débarrasser – ou que vous ne voulez T transférer votre argent », l'option de transférer le portefeuille vers un autre nœud pourrait être utile, a-t-il déclaré.

De la même manière, les utilisateurs peuvent souhaiter utiliser l’interface utilisateur de bitcoin-qt avec différents nœuds bitcoind.

« Vous pourriez avoir un nœud Bitcoin exécuté sur un serveur quelque part. Vous pourriez simplement vouloir exécuter l'interface graphique pour vérifier son utilisation de la bande passante ou ses connexions peer-to-peer », a expliqué Yanofsky.

Créer plus d'options pour les utilisateurs, quelque chose que les passionnés de Bitcoin sont particulièrement attentifs à, c'est la raison pour laquelle Yanofsky travaille sur le projet.

Bien qu'il admette que ses changements pourraient ralentir un peu les choses ou rendre le débogage du code plus difficile pour les développeurs, le projet a reçu la bénédiction GitHub de plusieurs La rédaction de Bitcoin CORE , dont le responsable principal Wladimir J. van der Laan et le contributeur Daniel Cousen.

Et c'est en partie parce que les avantages ne sont T seulement destinés aux utilisateurs, a déclaré Yanofksy, ajoutant :

« Il y a des fonctionnalités visibles par l'utilisateur qui en ressortent, mais il y a aussi un gros composant de nettoyage de l'architecture et du code. »

Goulot d'étranglement de l'examen

Bien que Yanofsky ait déclaré qu'il avait presque fini d'écrire le code de la mise à niveau majeure, il reste encore un certain nombre de choses à faire avant qu'il puisse être officiellement ajouté à Bitcoin CORE.

« Le plus gros problème avec les critiques, c’est d’attirer l’attention des gens », a-t-il déclaré.

Étant donné qu'un certain nombre de développeurs Bitcoin open source doivent examiner chaque modification de code avant de pouvoir l'ajouter, et qu'il existe un nombre limité de développeurs possédant l'expertise nécessaire pour examiner les modifications de code, le processus pourrait être ONE.

Yanofsky s'attend également à ce que d'autres changements, tels que les ajouts de code peer-to-peer de Cory Fields et les modifications de code de portefeuille de son collègue de Chaincode Matt Corallo, aient également la priorité sur son changement de séparation des processus.

« Pour l'instant, ce n'est pas vraiment ce domaine qui nous intéresse », a déclaré Yanofsky. « Notre priorité absolue est d'améliorer la prise en charge de SegWit. Cette fonctionnalité devra attendre son tour. »

Mais même si cela ne figure pas encore sur la liste des priorités, le travail promet néanmoins d'être un changement important, comme le souligne le commentaire de Greg Maxwell, directeur technique de Blockstream, sur leGithub de Yanofsky:

« Je pense que nous aurions dû faire quelque chose comme ça il y a longtemps. »

Déclaration de transparence:CoinDesk est une filiale de Digital Currency Group, qui détient une participation dans Blockstream.

Legoimage via Shutterstock

Alyssa Hertig

Journaliste spécialisée dans les technologies chez CoinDesk, Alyssa Hertig est programmeuse et journaliste spécialisée dans le Bitcoin et le Lightning Network. Au fil des ans, ses articles ont également été publiés dans VICE, Mic et Reason. Elle écrit actuellement un livre explorant les tenants et aboutissants de la gouvernance du Bitcoin . Alyssa possède des BTC.

Alyssa Hertig