Établir une connexion TCP avec le client SPV en utilisant Python

Un développeur tente d'implémenter un client SPV en Python pour apprendre à établir une connexion TCP avec un nœud complet de Bitcoin. Malgré ses efforts, il ne reçoit pas de réponse adéquate aux messages envoyés, notamment le message de version et le verack. Il sollicite l'aide de la communauté pour résoudre ce problème lié à sa mise en œuvre.

Le développeur essaie d'établir une connexion TCP avec un nœud Bitcoin

Un utilisateur partage son expérience dans l'implémentation d'un client SPV (Simplified Payment Verification) en Python. L'objectif est de créer une simple connexion TCP à un nœud complet. Cependant, il rencontre des difficultés pour recevoir des réponses adéquates après l'envoi de ses messages.

Les détails du code Python utilisé par le développeur

Dans son article, le développeur présente son code qui comprend plusieurs fonctions clés : - La fonction `create_sub_version` encode la sous-version du client. - La fonction `create_network_address` crée une adresse réseau binaire. - La fonction `create_message` assemble les messages en incluant leur checksum. Il a également mis en place des payloads spécifiques pour les requêtes « version », « verack » et « getdata », chacun étant essentiel pour communiquer correctement avec le nœud.

Les problèmes rencontrés lors des tests

Malgré tout cela, lorsque le développeur se connecte au serveur spécifié dans son code, il reçoit occasionnellement une réponse au message de version : « b'7b226a736f6e727063223a2022322e30222c20226572726f72223a207b22636f6465223a202d33323730302c20226d657373616765' ». Cependant, il reste sans réponse face aux autres messages qu'il tente d'envoyer. Ce manque de communication soulève des questions sur la compatibilité ou les erreurs potentielles dans la mise en œuvre.

Appel à l'aide auprès de la communauté

Le développement étant encore nouveau pour lui, l'utilisateur recherche activement des solutions ou conseils supplémentaires. Il mentionne avoir consulté diverses ressources telles que : - Une question sur Stack Exchange - Le code GitHub de Ken Shirriff Malheureusement, ces références ne semblent pas résoudre ses problèmes liés à Python 3 ou autres complications techniques. Il conclut donc par un appel aux membres expérimentés pour toute aide permettant d'éclaircir pourquoi ses messages ne passent pas ou suggérer d'autres implémentations possibles en Python 3.