Les + populaires

BTC ETH SOL XRP BNB USDC USDT

Suivez-nous

Mise à l’échelle des opérations de nœud chez Coinbase | par Coinbase | juin 2022

IAavec

Tl;dr : Ce blog partage des informations sur la manière dont Coinbase investit dans de nouveaux outils et processus pour faire évoluer ses opérations de nœuds.

Par Min Choi, directeur principal de l’ingénierie – Fiabilité cryptographique

Les nœuds Blockchain alimentent presque toutes les expériences utilisateur de Coinbase. Nous les utilisons pour surveiller les mouvements de fonds, aider nos clients à gagner leurs récompenses de mise et créer les analyses nécessaires pour prendre en charge les fonctionnalités populaires de nos applications. En tant que tel, être capable de gérer efficacement les nœuds de la blockchain est vital pour notre cœur de métier et nous continuons à investir dans des moyens de faire évoluer nos opérations de nœuds.

L’un des aspects les plus difficiles de la gestion des nœuds est de suivre les changements constants, et parfois imprévisibles, apportés au logiciel du nœud. Les développeurs d’actifs publient constamment de nouvelles versions de code et certaines chaînes de blocs, telles que Tezos, s’appuient sur un modèle de gouvernance en chaîne pour faire voter la communauté sur tous les changements proposés. Un modèle de gouvernance décentralisé comme celui-ci rend difficile de prévoir quand un changement sera introduit et de préparer nos systèmes internes à l’avance. Un exemple d’un tel scénario est décrit dans l’alerte Messari ci-dessous.

Données fournies par https://messari.io/

Les conséquences de ne pas suivre ces changements peuvent être graves pour nos clients. Ils pourraient entraîner de longs retards pour équilibrer les mises à jour dans nos principaux portefeuilles ou réduire les récompenses de jalonnement. Pour aider à minimiser la survenue de ces incidents, nous concentrons nos investissements sur les domaines suivants :

Ce service nous donne une paire de mains supplémentaire (ou devrais-je dire « ARM ») pour traiter les mises à niveau communes des nœuds. Tous jeux de mots mis à part, le service ARM surveille l’activité de publication de Github pour des dizaines de chaînes de blocs critiques et automatise le déploiement de nouveaux binaires de nœuds dans nos environnements de non-production. Cela permet à nos ingénieurs de se concentrer sur les validations de service et de travailler de manière proactive avec les développeurs d’actifs pour résoudre les problèmes avant la mise en production.

Le diagramme ci-dessous montre le flux de données de haut niveau pour ARM.

Voici un exemple récent de la façon dont le service ARM a été exploité pour traiter une mise à niveau de nœud pour Algorand.

  • Sur 9 mai à 12 h 44 HAPla version 3.6.2 d’Algorand est sortie.
  • Sur 9 mai à 13 h 13 HAPle service ARM a déposé un ticket pour informer nos ingénieurs et suivre le changement entrant.
  • Sur 9 mai à 13 h 43 HAPla modification de code requise a été générée automatiquement pour la génération et le déploiement.
  • Sur 9 mai à 14:13 PDT, le changement a été automatiquement déployé sur tous nos environnements hors production pour Algorand.
  • Sur 9 mai à 14 h 43 HAPune erreur dans l’un des trois déploiements a été détectée et le service ARM est passé à un ingénieur pour qu’il l’aide à enquêter.
  • Sur 10 mai à 06h27 HAPl’ingénieur a résolu le problème de déploiement et a commencé les tests de validation de service en vue du déploiement en production.

Comme vu ci-dessus dans cette chronologie des événements, le système n’est pas complètement sans contact, ce qui signifie que des ingénieurs sont toujours nécessaires dans le cadre du processus de mise à niveau global. Cependant, le service ARM nous permet d’effectuer des centaines de ces opérations de mise à niveau en parallèle, économisant d’innombrables heures de temps d’ingénierie qui peuvent ensuite être réinvesties dans des efforts d’assurance qualité.

Il s’agit d’un service d’orchestration utilisé pour exécuter des tests d’intégration, à la fois via des flux de travail temporels et des appels d’API vers des systèmes critiques sur Coinbase. Comme son nom l’indique, Test-Runner obtient et stocke les résultats des tests, les agrège par métadonnées et expose une API pour interroger les résultats. En simplifiant la création de ces tests et en partageant les résultats des tests standardisés entre nos équipes d’ingénieurs, nous sommes en mesure d’accélérer nos processus d’ajout d’actifs et de réponse aux incidents. Nous accordons beaucoup d’importance à la création de tests d’intégration réutilisables, car nous les considérons comme la base de notre régime de maintenance des actifs.

Le diagramme ci-dessous montre l’architecture de service de haut niveau pour Test-Runner.

Voici également quelques exemples de base des types de tests concernés par Test-Runner.

  1. Transferts de solde au sein de Coinbase.
  2. Dépôts et retraits dans et hors de Coinbase.
  3. Balayage et restauration des opérations entre les portefeuilles froids et chauds.
  4. Opérations commerciales simples (achat/vente).
  5. Validation Rosette.

Chaque fois qu’un nœud est mis à niveau, ces tests sont automatiquement déclenchés via notre pipeline d’intégration continue (CI), fournissant une validation claire du succès ou de l’échec. Cela aide nos ingénieurs à prendre des décisions opérationnelles rapides et éclairées, telles que le retour à une version précédente du binaire du nœud.

Au fur et à mesure que nous ajoutons des chaînes de blocs à notre catalogue de support, nous investissons dans des équipes d’ingénierie flexibles conçues pour collaborer sur les priorités émergentes. Nos pods comptent environ 5 à 7 ingénieurs, sont composés d’ingénieurs en fiabilité du site et en logiciel, et offrent la possibilité de s’adapter rapidement aux conditions changeantes du marché. Par exemple, nous avons récemment formé un module pour nous concentrer spécifiquement sur la transition prochaine d’Ethereum d’une blockchain Proof-of-Work (POW) à une blockchain Proof-of-Stake (POS). La fusion est un changement très important et extrêmement complexe, nécessitant l’ajustement de presque tous les systèmes Coinbase, mais il s’agit également d’un événement ponctuel qui ne justifie pas la formation d’une équipe d’ingénierie permanente.

Nous sommes également en train de former de nouveaux pods pour nous concentrer sur ERC-20 (Tokens) et ERC-721 (NFT). De cette façon, nous pouvons pivoter sur le développement de fonctionnalités qui exploitent ces normes pour le bien de nos clients. En formant et en dissolvant constamment des gousses de cette manière, nous sommes en mesure de développer de petites économies d’échelle qui répondent rapidement aux besoins de nos clients. Cela donne également à nos ingénieurs la possibilité de choisir entre des domaines d’intérêt technologique et de développer une expertise en la matière qui les aide à développer leur carrière chez Coinbase.

Développer une stratégie complète pour la gestion des nœuds est une entreprise difficile. Bien que nous reconnaissions que notre propre stratégie n’est pas sans défauts, nous sommes fiers d’opérer à la pointe de la technologie blockchain. Chaque jour, les ingénieurs de Coinbase travaillent sans relâche en partenariat avec la plus grande communauté crypto pour surmonter ces défis opérationnels. Donc, si vous êtes intéressé par la construction du système financier du futur, consultez les ouvertures de l’équipe Crypto Reliability (CREL) de Coinbase.

Source blog.coinbase.com

Investissez en bourse
Trade Republic
10€ offerts en actions

Donnez votre avis

Soyez le 1er à noter cet article


Partagez cet article maintenant !

Envoyez simplement nos contenus crypto et finance à vos proches.