stratum


J'ai donc rassemblé l'exemple suivant pour me connecter à un pool stratum v2, mais le délai expire à chaque fois. que la strate v2 est censée utiliser.

Client (fonctionne sur localhost avec l'extrait de serveur ci-dessous, délais d'attente sur un vrai serveur stratum v2 comme celui de slushpool) :

socket d'importation

à partir de noise.connection importer NoiseConnection, Keypair

chaussette = socket.socket()

# strate2

# chaussette.connect(('localhost', 2000))

chaussette.connect(('v2.stratum. 3336))

# Créer une instance de NoiseConnection, configurée pour utiliser le modèle de négociation NN, Curve25519 pour

# Paire de clés à courbe elliptique, ChaCha20Poly1305 comme fonction de chiffrement et SHA256 pour le hachage.

# Définir le rôle dans cette connexion en tant qu'initiateur

proto.

# Entrer en mode poignée de main

proto.

mais ce serait du texte clair pour ce modèle).

message = proto.

# pour échanger des octets entre les parties communicantes.

chaussette.sendall(message)

# Recevoir le message du répondeur

reçu = chaussette.recv (2048)

imprimer (reçu)

# Introduisez le message reçu dans noiseasia1.

payload = proto.

# À partir de maintenant.

/décryptage de NoiseConnection pour le cryptage et le décryptage des messages.

encrypt(b'Ceci est un exemple de charge utile')

chaussette.

texte chiffré = chaussette.recv (2048)

texte en clair = proto.decrypt(texte chiffré)

imprimer (texte clair)

Serveur à exécuter sur localhost, pour tester le code ci-dessus  :

socket d'importation

à partir du cycle d'importation d'itertools

à partir de noise.connection importer NoiseConnection, Keypair

importer base64

s = socket.socket()

s.setsockopt(socket. socket. 1)

s.bind(('localhost', 2000))

à l'écoute(1)

conn, addr = s.accept()

print('Connexion acceptée depuis', addr)

b64decode('/iVi/aV3/PHcUBTQSYmo=')

noise.STATIC,

noise.

noise.

# Effectuez une poignée de main. Pause une fois terminé

pour action en cycle(['receive', 'send']) :

si noise.

Pause

elif action == 'envoyer'  :

texte chiffré = bruit.

conn.sendall (texte chiffré)

elif action == 'recevoir'  :

données = conn.recv (2048)

texte en clair = noise.

# Boucle sans fin "en écho" des données reçues

tant que vrai  :

données = conn.recv (2048)

sinon données :

Pause

reçu = noise.decrypt(données)

conn.sendall(bruit.encrypt(reçu))

Fondamentalement, le socket se ferme, il n'y a aucun message de retour du serveur, rien. Je ne sais pas si j'ai gravement mal compris leur documentation ( ou quoi, parce que je ne peux pas dépasser la poignée de main.

S'il vous plaît aider.