Exemple de fichier bitcoin. Conf fonctionnel
Je ne parviens pas à me connecter à mon serveur malgré plusieurs tentatives. J'ai posé des questions publiées ainsi que mon fichier .conf et mon code python et malgré cela, personne n'a pu me donner une raison pour laquelle il ne se connecte pas.
Je peux me connecter au port en utilisant telnet 127.0.0.1
Et je suis tout à fait sûr d'avoir ouvert les ports correctement. Nestats -a les montre ouverts. Je les ai ouverts tous les deux pour les appels entrants et sortants, à la fois pour mon routeur et pour mon pare-feu. Et lorsque je supprime les règles, j'obtiens immédiatement une erreur différente indiquant que l'hôte a refusé les connexions. Mais lorsque ces règles sont activées, j'obtiens l'erreur suivante...
(.venv) D:\PROJECTS\python38_env_bitcoin\src\hellobitcoin101>python bitcoin104.py Traceback (dernier appel le plus récent) : fichier "bitcoin104.py", ligne 10, dans best_block_hash = rpc_connection.getbestblockhash() Fichier "D:\PROJECTS\python38_env_bitcoin\.venv\lib\site-packages\bitcoinrpc\authproxy.py", ligne 139, dans __call__ réponse = self._get_response() Fichier "D:\ PROJECTS\python38_env_bitcoin\.venv\lib\site-packages\bitcoinrpc\authproxy.py", ligne 179, dans _get_response http_response = self.__conn.getresponse() Fichier "c:\users\hanso\appdata\local\programs\python \python38\lib\http\client.py", ligne 1344, dans le fichier getresponse réponse.begin() "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", ligne 307, dans la version de début, status, Reason = self._read_status() Fichier "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", ligne 268, dans la ligne _read_status = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") Fichier "c:\users\hanso\appdata\local\programs\python\python38\lib\socket.py", ligne 669, dans readinto return self._sock.recv_into(b) socket.timeout : délai d'attente expiré
J'essaie d'utiliser le mot de passe utilisateur en utilisant rpcauth.. donc dans mon fichier .conf, j'ai quelque chose comme...
rpcuser=monnom rpcauth=monnom:fef852a5c3e764a3a4e7fcaa283b2f1f$eadb370e8d7705d8c960570c13b49372d1a3780aa3e1ea5013908271035d4ee9
Je ne sais pas si c'est le bon usage. J'ai obtenu le hachage en utilisant... python ./rpcauth.py monnom mon mot de passe
J'ai déjà essayé une configuration comme....
rpcuser=monnom rpcpassword=monmot de passe
Ce qui est intéressant c'est que j'obtiens aussi parfois une connexion sans erreur de réponse sans avoir rien changé...
Par exemple...
PS D:\PROJECTS\python38_env_bitcoin\src\hellobitcoin101> python .\bitcoin104.py >> Traceback (dernier appel le plus récent) : fichier ".\bitcoin104.py", ligne 10, dans best_block_hash = rpc_connection.getbestblockhash() Fichier "D:\PROJECTS\python38_env_bitcoin\.venv\lib\site-packages\bitcoinrpc\authproxy.py", ligne 139, dans __call__ réponse = self._get_response() Fichier " D:\PROJECTS\python38_env_bitcoin\.venv\lib\site-packages\bitcoinrpc\authproxy.py", ligne 179, dans _get_response http_response = self.__conn.getresponse() Fichier "c:\users\hanso\appdata\local\ programmes\python\python38\lib\http\client.py", ligne 1344, dans le fichier getresponse réponse.begin() "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client. py", ligne 307, dans la version de début, status, Reason = self._read_status() Fichier "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", ligne 276, dans _read_status, augmentez RemoteDisconnected ("Connexion fermée à distance sans" http.client.RemoteDisconnected : connexion fermée à distance sans réponse PS D:\PROJECTS\python38_env_bitcoin\src\hellobitcoin101> python .\bitcoin104.py >> Traceback (dernier appel le plus récent) : Fichier ".\bitcoin104.py", ligne 10, dans best_block_hash = rpc_connection.getbestblockhash() Fichier "D:\PROJECTS\python38_env_bitcoin\.venv\lib\site -packages\bitcoinrpc\authproxy.py", ligne 139, dans __call__ réponse = self._get_response() Fichier "D:\PROJECTS\python38_env_bitcoin\.venv\lib\site-packages\bitcoinrpc\authproxy.py", ligne 179, dans le fichier _get_response http_response = self.__conn.getresponse() "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", ligne 1344, dans le fichier getresponse réponse.begin() "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", ligne 307, dans la version de début, statut, raison = self._read_status() Fichier "c:\users\ hanso\appdata\local\programs\python\python38\lib\http\client.py", ligne 268, dans la ligne _read_status = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") Fichier "c:\users\hanso\appdata\local\programs\python\python38\lib\socket.py", ligne 669, dans readinto return self._sock.recv_into(b) socket.timeout : délai d'attente expiré
J'ai cherché en ligne et il semble y avoir très peu d'exemples de fichier .conf correctement configuré et d'appel d'autorité python rpc correspondant...
Ainsi...
rpc_connection = AuthServiceProxy("http://%s:%:8334"%("monnom","mon mot de passe")) best_block_hash = rpc_connection.getbestblockhash() best_block_hash
Il échoue sur la deuxième ligne ci-dessus, c'est-à-dire best_block_hash = rpc_connection.getbestblockhash()
À ce stade, je pense avoir essayé tout ce à quoi je pouvais penser.
Mon instinct me dit que c'est peut-être quelque chose que je fais peut-être mal avec le mot de passe de l'utilisateur. Mais j'ai essayé de nombreuses configurations différentes, de nombreux mots de passe différents. Redémarrer le nœud à chaque fois, charger le fichier .conf modifié et réexécuter le script python. Et tout ce que j'obtiens, c'est l'expiration du délai ou l'absence de réponse, peu importe ce que je fais maintenant. Ensuite, si je joue avec le port, la connexion est refusée par une erreur de l'hôte.
Si je pouvais peut-être voir un exemple en ligne d'un fichier .conf correctement configuré avec le texte exact rpsuser et rpcpassword, et la même chose dans la configuration du socket python rpc. Je ne sais pas si je ne devrais peut-être pas mettre "" autour de quelque chose, ou si je devrais le faire et je ne le fais pas, et c'est là le problème. Ou peut-être dois-je utiliser rpcauth d'une manière différente... ?
Toute aide serait grandement appréciée... Merci d'avoir lu jusqu'ici malgré tout.
