Utilisation d’un socket Linux pour se connecter à la console JavaScript

John Stanford

Utilisation d’un socket Linux pour se connecter à la console JavaScript


J’essaie de me connecter par programme à une console JavaScript (tout comme vous obtenez avec geth attach ) en utilisant le fichier geth.ipc qui est créé dans le dossier chaindata. Sous Linux, c’est un fichier socket, donc j’ai pensé que je pouvais me connecter avec quelque chose comme ça (en Python):

 import  socket client =  socket . socket (  socket . AF_UNIX ,  socket . SOCK_STREAM ) client . connect ( "/home/john/Desktop/EthPrivateChain/chaindata/geth.ipc" ) client . send ( str . encode ( "admin.nodeInfo.enode" )) print ( str ( client . recv ( 1024 ))) client . close () 

Cependant, cela me donne le JSON RPC, pas la console JavaScript. Le code fonctionne mais le point de terminaison renvoie une erreur lorsque j’essaie. Le même code, mais avec une requête JSON, fonctionne. Je veux la console JavaScript parce que je veux pouvoir accéder à certaines choses qui ne sont pas disponibles via le JSON RPC, en particulier l’encode dans ce cas. Je pense qu’il doit y avoir un moyen de se connecter à ce fichier de cette façon car je peux l’utiliser pour démarrer une console avec geth attach /home/john/Desktop/EthPrivateChain/chaindata/geth.ipc . Existe-t-il un moyen pour que ce fichier socket accède à l’API JavaScript lorsque j’y accède avec mon propre code?

Réponses


 Ismael

La commande geth attach crée uniquement sa propre boucle de lecture-évaluation javascript, mais utilise toujours les commandes JSON-RPC pour parler avec le nœud geth via le fichier ipc.

Geth fournit un ensemble de commandes plus avancées qui ne sont accessibles qu’à l’aide de JSON-RPC qui sont des API de gestion geth uniquement.

Certaines de ces API sont accessibles à partir de javascript avec web3Admin .

John Stanford

Pour quiconque essaie de le faire, la documentation de l’API de gestion indique que vous devez activer explicitement ces API dans la ligne de commande lorsque vous démarrez Geth, mais je n’y étais pas obligé. Ils ont été activés par défaut dans Geth 1.7.3.

Ismael

@JohnStanford Ils sont activés par défaut si vous utilisez IPC, mais vous devez les activer explicitement si vous utilisez l’interface RPC.

 

#à, #la, #pour, connecter, Console»:, d’un, JavaScript, Linux, se, socket, utilisation

 

yahoo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *