Titres Titres

Ok les gens, il est temps pour un autre « Faisons quelques tests expérimentaux sur Cellframe Python SDK ».
Vous avez probablement consulté mon article sur les t-dApps pour l’écosystème Cellframe. Dans cet article, nous allons donc examiner les plugins côté serveur et client pour le nœud Cellframe.
Un plugin client et serveur peut être utilisé de plusieurs manières différentes. Vous pouvez par exemple fournir des données à l’utilisateur côté serveur en fonction de différentes conditions (par exemple, quantité de jetons dans le portefeuille, abonnement payant, etc.)
Soit dit en passant, il existe des exemples disponibles sur Cellframe Gitlab pour les plugins client et serveur, nous les utiliserons donc comme base pour nos tests.
Allons-y!
À propos de Cellframe
Cellframe est un ambitieux projet de blockchain de troisième génération et peu de gens (moi y compris) ont déjà commencé à en parler en tant que prochain Polkadot ou Kusama.
Ce projet est cependant plus orienté service et présente certains avantages par rapport à Polkadot/Kusama (par exemple, la cryptographie post-quantique, le sharding à 2 niveaux, les opérations inter-chaînes P2P).
Cellframe est écrit en C (ce qui le rendra RAPIDE et portable), et il a un SDK pour C et Python pour le moment. D’autres langues prises en charge sont à venir.
Je recommande vraiment de visiter leur site Web (https://cellframe.net) et de lire leur livre blanc !
Connexion client au serveur
Voyons donc d’abord le plugin client. Le plug-in client peut être utilisé de plusieurs manières différentes pour établir une connexion aux plug-ins côté serveur, mais dans cet exemple, j’exécute tout sur une installation locale de nœud Cellframe.

J’ai ajouté une journalisation de base pour voir ce qui se passe dans les coulisses lorsque ce plugin client se connecte au plugin serveur. Si nous jetons un coup d’œil aux fichiers journaux du nœud Cellframe, nous devrions voir quelque chose comme ceci :
[05/07/22-07:35:45] [ * ] [libdap-python] [CLIENT PLUGIN] Client connected...
[05/07/22-07:35:45] [ * ] [libdap-python] [CLIENT PLUGIN] sent data: Hello server!
Maintenant, regardons la partie plugin du serveur :

Je n’ai pour l’instant modifié que le custom_data()
partie fonction dans ce fichier de plugin. custom_data()
sera appelé lorsque nous recevrons des données de notre plugin client.
Donc, regarder les journaux après l’exécution de ces deux plugins nous donnerait quelque chose comme :
[05/07/22-07:36:58] [ * ] [libdap-python] [CLIENT PLUGIN] Client connected...
[05/07/22-07:36:58] [ * ] [libdap-python] [CLIENT PLUGIN] sent data: Hello server!
[05/07/22-07:36:58] [ * ] [libdap-python] [SERVER PLUGIN] Received data: Hello server!
[05/07/22-07:36:58] [ * ] [libdap-python] [CLIENT PLUGIN] Received from server plugin: Hello server!
Ainsi, le flux de données de base entre ces plugins fonctionne comme il se doit.
Ajouter plus de fonctionnalités
Ok, maintenant que la connexion fonctionne quand init()
est appelée, nous pourrions juste modifier un peu le plugin et ajouter une commande qui nous permet de nous connecter au plugin serveur avec cellframe-node-cli
utilitaire de ligne de commande.
Nous utiliserons simplement la méthode AppCliServer.cmdItemCreate()
comme je l’ai fait sur mon tutoriel précédent pour un plugin simple :

Après cela, nous déplaçons l’initialisation de ServiceClient
au clientConnect()
fonction que nous avons créée :

Nous pouvons maintenant tester la connexion client avec cellframe-node-cli clientplugin
. Après avoir utilisé cette commande dans le terminal, nos journaux doivent imprimer exactement la même chose que celle imprimée précédemment dans les journaux lorsque le client se connecte au serveur.
Maintenant, ce serait trop simple d’utiliser une commande comme celle-ci. Ajoutons simplement quelques vérifications au clientConnect()
fonction pour vérifier si la commande est réellement valide :

Maintenant, lorsque vous utilisez la commande cellframe-node-cli clientplugin connect
commande, il crée une instance de ServiceClient
et se connecte au plugin du serveur.
j’ai aussi modifié le callback_connected()
logging pour informer l’utilisateur que la commande a été utilisée :

Maintenant, sur les journaux, nous pouvons voir :
[05/07/22-10:36:04] [ * ] [libdap-python] [CLIENT PLUGIN] Client connected...
[05/07/22-10:36:04] [ * ] [libdap-python] [CLIENT PLUGIN] sent data: This function is now called with command!
[05/07/22-10:36:04] [ * ] [libdap-python] [SERVER PLUGIN] Received data: This function is now called with command!
[05/07/22-10:36:04] [ * ] [libdap-python] [CLIENT PLUGIN] Received from server plugin: This function is now called with command!
Et quand nous utilisons la commande cellframe-node-cli clientplugin connect
:
mika@cellframe:~$ cellframe-node-cli clientplugin connect
Client connected to the server!
Comme nous pouvons le voir, cela devrait fonctionner.
Après un peu de nettoyage, voici le code final pour les deux :
Partie client :

Partie serveur :

Conclusion
Tout ce que je peux dire à ce stade, c’est que cet article n’est qu’une égratignure de la surface.
Il y a des millions de choses que vous pouvez faire avec le puissant SDK intégré à l’écosystème Cellframe. Vous pouvez écrire des programmes complets pour faire des choses qui sont impossibles à faire avec des contrats intelligents réguliers.
J’approfondis de plus en plus cette plate-forme dès que je comprends mieux comment les choses fonctionnent réellement.
Au fait, j’espère que nous verrons bientôt de la documentation pour les extensions Cellframe Dashboard : La super application pour l’écosystème Cellframe.
Maintenant, ce sera une série d’articles complètement différente alors…
Des questions? Des recommandations ?
Si vous voulez construire quelque chose sur l’avenir des blockchains, rejoignez leur chaîne de développement Telegram !
Vous pouvez aussi me contacter sur Twitter ou avec Telegram.
Les sources de ce tutoriel sont également disponibles sur mon github.
Merci pour la lecture!
Et un grand merci à tous mes followers sur Twitter pour m’avoir encouragé à écrire plus d’articles !
Rejoignez Coinmonks Telegram Channel et Youtube Channel pour en savoir plus sur le trading et l’investissement cryptographiques