Rejoignez-Nous sur

Défis des contributeurs Bitcoin Core

Bitcoin Core development

News

Défis des contributeurs Bitcoin Core

Bitcoin Core est un projet open source qui est le point de schelling pour le développement du protocole Bitcoin; il est souvent appelé «implémentation de référence» car il est de loin le logiciel Bitcoin le plus mature avec plus de contributeurs et d'activité que n'importe quelle autre implémentation de loin. Bien qu'il ait changé plusieurs fois de nom et même de plate-forme, il s'agit de l'organisation originale lancée par Satoshi Nakamoto.

Mais Bitcoin Core n'est pas comme la plupart des projets open source. C'est un logiciel essentiel à la mission sur lequel s'appuient de nombreuses personnes et entreprises dans ce qui est devenu un réseau de plus de 100 milliards de dollars. Bitcoin Core n'est pas développé de la même manière que votre logiciel consommateur moyen; c'est plus apparenté à l'ingénierie aérospatiale. Les enjeux sont élevés et la tolérance même à l'échec le plus mineur est incroyablement faible en raison du potentiel de catastrophe. Si vous parlez aux contributeurs principaux qui participent depuis de nombreuses années, ils ont tendance à convenir que le contrôle de la qualité de la révision et des tests de code a considérablement augmenté au cours de la dernière décennie. En tant que tel, la barre a été élevée pour quiconque souhaite que son code soit fusionné dans le référentiel.

Si vous souhaitez mieux comprendre la dynamique du fonctionnement de Core en tant qu'organisation, consultez Qui contrôle Bitcoin Core? J'ai également plusieurs guides sur la contribution à Bitcoin Core lié dans mes ressources éducatives.

Pull Request Stats

Notez qu'à la fin de 2011, le projet Bitcoin a migré de SourceForge vers Github – pour simplifier, j'ignore tous les RP rejetés qui se sont produits pendant l'ère SourceForge. Il n'est pas clair pour moi s'il est même possible de les trouver.

Au moment de l'écriture, Bitcoin Core a:

Ainsi, 32% des demandes d'extraction finissent par être abandonnées / rejetées (ou re-proposées différemment.)

Statistiques de demande de tirage fusionnées

Heureusement, il est assez simple d'interroger git pour agréger les statistiques du code qui l'a fait dans le référentiel.

$ git log –no-merges –all –pretty = tformat: –numstat | awk '{inséré + = $ 1; supprimé + = 2 $; delta + = $ 1- $ 2; ratio = supprimé / inséré} END {printf "Statistiques de validation: n- Lignes ajoutées (total):% s n- Lignes supprimées (total):% s n- Nombre total de lignes (delta):% s n- Ajouter ./Del. Ratio (1: n): 1:% s n ", inséré, supprimé, delta, ratio} '-

Basé sur tous les validations historiques (à l'exception des validations de fusion):

  • Lignes ajoutées (total): 2 167 565
  • Lignes supprimées (total): 1 483 481
  • Total lignes (delta): 684 084
  • Rapport ajouté / supprimé (1: n): 1: 0,6844

Statistiques de demande de tirage non fusionnées

Mais maintenant, nous devons déterminer combien de RP ont été fermés sans fusion!

Nous avons déjà déterminé qu'il y avait un peu plus de 4 000 RP non fusionnés au moment de la rédaction. Mais combien de lignes de code ces RP auraient-ils changé en cas de fusion? GitHub a une API pour ça, mais il existe peut-être une bibliothèque qui peut nous aider à l'utiliser plus facilement! Donne moi PyGithub un coup de feu…

Après quelques essais et erreurs, voici ce que j'ai trouvé: https://gist.github.com/jlopp/5aa87ed33e97ad58f54ace65e9b0ece3

Malheureusement, bien que l'interface utilisateur de Github nous permette de filtrer les demandes d'extraction fusionnées, il semble que l'API ne le permette pas. Nous devons donc itérer sur l'ensemble des 12 000+ RP pour compter les lignes de code à partir des lignes non fusionnées. Il s'avère que Github limite les appels d'API à 5 000 par heure, cette opération nous oblige donc à limiter le script pour qu'il s'étale sur plus de 2 heures.

Les resultats

Après avoir itéré toutes les demandes d'extraction rejetées de Bitcoin Core, nous constatons qu'il y avait:

9 011 209 lignes de code ajoutées rejetées au total
6 279 435 lignes de code supprimées supprimées

C'est 15 290 644 lignes de code rejetées modifiées contre 3 651 046 acceptées!

Ce qui signifie qu'au moment de la rédaction, seulement 19% des lignes de code modifiées proposées ont été acceptées dans Bitcoin Core.

Statistiques des meilleurs contributeurs

Et si nous approfondissons un peu plus au niveau individuel? De toute évidence, certains contributeurs maîtrisent mieux que d'autres le processus (souvent ardu) de réalisation d'une proposition.

Wladimir van der Laan – Taux de fusion de 88% PR
737 PR fusionnés
104 RP non fusionnés

Pieter Wuille – 87% de taux de fusion PR
600 RP fusionnés
90 RP non fusionnés

Marco Falke – 85% de taux de fusion PR
733 PR fusionnés
133 RP non fusionnés

Matt Corallo – 77% de taux de fusion PR
290 RP fusionnés
88 RP non fusionnés

Qu'en est-il des contributeurs notables qui ont cessé de contribuer après la mise à l'échelle des conflits?

Jeff Garzik – 58% de taux de fusion PR
88 fusionné
63 non fusionné

Mike Hearn – 57% de taux de fusion PR
8 fusionnés
6 non fusionné

Gavin Andresen – 80% de taux de fusion PR
180 fusionnés
43 non fusionné

Les statistiques de Gavin sont élevées mais je me demandais si cela était dû à sa participation précoce et s'il y avait une tendance notable menant à son départ. Il s'avère qu'il y a en effet:

2012: taux de fusion des RP de 91% (49 des 54 RP)
2013: taux de fusion de 86% PR (60 sur 70 PR)
2014: 81% de taux de fusion PR (29 sur 36 PR)
2015: taux de fusion des relations publiques de 59% (10 RP sur 17)
2016: 0% de taux de fusion des RP (0 sur 5 RP)

Gavin est-il devenu un pire programmeur au fil des ans? Cela semble assez improbable. Je soupçonne plutôt que cela prouve que les normes de qualité de Bitcoin Core augmentent de rigueur.

Plats à emporter

  • Bitcoin Core a des normes élevées; une partie importante des modifications de code sont abandonnées ou rejetées.
  • Il existe des preuves qui soutiennent la théorie selon laquelle les normes de code ont augmenté au cours de la vie du projet.
  • Il semble qu'un taux de rejet des RP inférieur à 70% indique qu'un contributeur sera frustré et cessera de cotiser.

Il est certainement possible d'approfondir ce phénomène, mais je pense que c'est un bon début!





Traduction de l’article de Jameson Lopp : Article Original

BlockBlog

Le Meilleur de l'Actualité Blockchain Francophone & Internationale | News, Guides, Avis & Tutoriels pour s'informer et démarrer facilement avec Bitcoin, les Crypto-Monnaies et le Blockchain. En Savoir Plus sur L'Équipe BlockBlog

Commenter cet Article

Commenter cet Article

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Plus dans News

Les Plus Populaires

Acheter des Bitcoin

Acheter des Alt-Coins

Sécuriser vos Cryptos

Vêtements et Produits Dérivés

Top
luctus nec Donec consectetur venenatis, Nullam tristique elit. dictum Curabitur libero