Mise à jour # 3 de Crypto.com Chain Dev


Pour la mise à jour 3 du développement de la chaîne Crypto.com, nous avons un calendrier complet et de nouvelles fonctionnalités intéressantes. Voir ci-dessous les questions clés abordées:

  • Architecture initiale du backend du client
  • Exemple de prototype d'application de portefeuille.
  • Mécanisme de gouvernance initial
  • Communauté de discussion de développeurs

Prototype du client de la chaîne Crypto.com

Notre objectif est de rendre l'adoption de la chaîne Crypto.com aussi simple que possible. Par conséquent, nous avons décidé de séparer les fonctionnalités liées au client dans un cadre réutilisable pouvant être exploité par différentes applications tierces, qu’il s’agisse de la mise en œuvre de portefeuilles multi-devises, de taps ou d’infrastructures d’échange crypto-monnaie internes.

L'architecture du client suivra nos objectifs de conception initiaux à long terme:

  1. La sécurité: notre objectif est que l’architecture client tire parti des bibliothèques cryptographiques hautement analysées et nous permette de valider leurs données de paiement sans exécuter de nœud de réseau complet (c’est-à-dire une variante simplifiée de la vérification des paiements).
  2. L'évolutivité: différentes applications ayant des besoins de performances différents, l’architecture client doit les satisfaire.
  3. Portabilité: Bien que nous ayons choisi Rust pour la mise en œuvre de la chaîne Crypto.com, l’architecture client pouvait être utilisée dans d’autres langages de programmation.

L'architecture client en chaîne de Crypto.com est conçue pour fournir des abstractions et des services utiles pour une intégration facile avec les portefeuilles et les données de chaîne de blocs. L'architecture client contient principalement des abstractions et des fonctionnalités pour les opérations liées aux portefeuilles et aux requêtes et manipulations de données blockchain.

Le client résume plusieurs détails, tels que les mécanismes de stockage et de requête, ce qui offre une flexibilité dans la mise en œuvre. L'implémentation sous-jacente peut être modifiée sans problème si nécessaire. Il existe une implémentation par défaut prête à l’emploi du portefeuille et de l’index, renforcée par une mémoire interne (pour les tests) et des bases de données intégrées.

Certains des services ci-dessus sont exposés via une interface JSON-RPC. Par conséquent, l'intégration entre les langages est simple et les développeurs peuvent se concentrer sur l'utilisation des API fournies sans connaître l'implémentation sous-jacente. L'interface client JSON-RPC fournit désormais des API pour les opérations de base du portefeuille, notamment la création de portefeuille, les requêtes et transactions de solde, ainsi que les simples transferts de fonds. Notre objectif est de fournir aux développeurs une interface API conviviale et riche en fonctionnalités.

Exemple d'application de portefeuille de chaînes Crypto.com

Pour illustrer l'utilisation et la portabilité de l'architecture client, nous avons développé un prototype d'interface utilisateur graphique représentant un exemple de base dans TypeScript.

Quelques captures d'écran:

1. Créez votre portefeuille avec mot de passe

2. Déchiffrez votre portefeuille avant d’envoyer des transactions.

3. Entrez les détails de la transaction que vous envoyez

4. Examinez et cliquez sur & # 39; Envoyer & # 39; pour confirmer la transaction

5. Transaction envoyée

6. Indiquez à l'expéditeur votre adresse ou le code QR correspondant pour recevoir des fonds.

7. Vérifiez vos transactions

Voir le transfert en direct dans la vidéo suivante:

Mécanisme de gouvernance initial

Considérations relatives à la gouvernance: La gouvernance est cruciale pour le succès durable d'une chaîne de blocs. La chaîne Crypto.com vise à mettre en place un mécanisme de gouvernance solide permettant de prendre des décisions de qualité profitant à la communauté en général.

Dans la conception du gouvernement, nous avons fait référence aux pratiques d’autres projets dans l’espace, y compris des exemples d’utilisation par le gouvernement en dehors de la chaîne (Bitcoin, Ethereum, par exemple) et du gouvernement dans la chaîne (par exemple, Dash, Decred). . Pour la conception initiale, nous prévoyons de commencer avec un mécanisme de gouvernance qui est:

  • Intuitif à comprendre et facile à adopter.
  • Inclusif et permet la participation de la communauté.
  • Encouragez la contribution au projet de la chaîne.

Nous continuerons d’affiner et d’achever le mécanisme par étapes.

Mécanisme de gouvernance (prototype): Afin de promouvoir la contribution à l'écosystème, nous allons à l'avenir ouvrir des applications pour les concessions d'écosystème de chaîne de Crypto.com.

Notre objectif est de mettre en place un système de gouvernance dans lequel les personnes occupant ou pouvant occuper un siège dans un nœud du Conseil (à savoir 500 000 CRO en poste) seront éligibles pour participer au vote. Pour les utilisateurs qui contribuent avec un siège, nous sommes disposés à attribuer 1 vote à ce siège partagé, et les contribuables décident de manière autonome entre eux comment décider du vote final.

Les propositions présélectionnées par Crypto.com seront ouvertes au vote de la communauté. Un vote sera attribué pour chaque 500K CRO bet (une preuve de propriété du jeton est requise). Par exemple, un utilisateur avec 700K CRO misée se verra attribuer 1 vote, tandis qu'un autre utilisateur avec 1 000K CRO se verra attribuer 2 voix.

Les résultats de l'enquête seront publiés après la fin de la période de vote. En se référant aux résultats de l'enquête, Crypto.com prendra la décision de financement finale et en publiera les résultats. Les projets retenus bénéficiant de subventions écosystémiques doivent rendre compte de leurs progrès et de l’utilisation des fonds de manière transparente, sous réserve d’un examen et d’une surveillance par Crypto.com.

Communauté de développeurs

Nous avons déplacé notre salle de discussion de la communauté des développeurs vers Gitter.

Ce canal de communication a pour but d’aider les utilisateurs techniques à commencer à travailler sur le code de base de la chaîne Crypto.com. Comme le suggèrent les directives relatives aux contributions, c’est également un bon point de départ si vous souhaitez contribuer au code de base de Crypto.com Chain.

Programme de récompenses en cours

Un grand nombre de nos récompenses BountySource sont toujours en cours et nous souhaitons plus de présentations. Nous voudrions remercier Dingelish écrire un excellent guide de débogage pour les enclaves Rust SGX que nous prévoyons d’utiliser dans la chaîne Crypto.com.

Suivant

Frais et enjeux: Dans la prochaine mise à jour, nous espérons fournir plus de détails sur le prototype amélioré qui étendra le modèle comptable, car des modifications seront nécessaires pour faciliter les fonctionnalités au-delà des simples transferts, principalement liées à l'administration des taux de base, des paris et des récompenses.

Mécanismes de confidentialité évolutifs.: L'autre séquence de travail se concentrera sur les mécanismes de confidentialité évolutifs qui utilisent des environnements d'exécution fiables (TEE). La mise à jour contiendra des détails sur les modifications apportées à la conception et aux éléments associés, tels qu'un modèle de menace système.

Client et portefeuille: À l'heure actuelle, l'architecture du client est toujours en plein développement.

Dans les mois à venir, nous prévoyons une mise à jour des modifications apportées à la mise en œuvre du réseau de chaînes prototypes de Crypto.com (telles que le support multisig ou l'implantation initiale), ainsi que la stabilisation de ses fonctionnalités existantes. Nous continuerons à faire évoluer les API pour prendre en charge davantage d'opérations, notamment des adresses multiples et la création de transactions plus sophistiquées.

À long terme, nous souhaiterions que le client soit compatible avec les "signataires" externes, tels que les portefeuilles de matériel ou les portefeuilles de "matériel virtuel" dans les enclaves de sécurité exécutées. Nous étudions également sa compilation dans WebAssembly pour améliorer la portabilité et la distribution dans des environnements plus divers (par exemple, des modules complémentaires de navigateur Web).