Estoy tratando de conectarme mediante programación a una consola de JavaScript (tal como lo hace con geth attach
) usando el archivo geth.ipc que se crea en la carpeta chaindata. En Linux, es un archivo de socket, así que pensé que podría conectarme con algo como esto (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()
Sin embargo, esto me da el JSON RPC, no la consola de JavaScript. El código funciona pero el punto final devuelve un error cuando intento esto. Funciona el mismo código, pero con una solicitud JSON. Quiero la consola de JavaScript porque quiero poder acceder a algunas cosas que no están disponibles a través de JSON RPC, específicamente el enodo en este caso. Creo que tiene que haber una forma de conectarse a ese archivo de esta manera porque puedo usarlo para iniciar una consola con geth attach /home/john/Desktop/EthPrivateChain/chaindata/geth.ipc
. ¿Hay alguna manera de hacer que este archivo de socket acceda a la API de JavaScript cuando accedo a él con mi propio código?
El comando geth attach
solo crea su propio bucle de evaluación de lectura de javascript, pero aún usa los comandos JSON-RPC para hablar con el nodo geth a través del archivo ipc.
Geth proporciona conjuntos de comandos más avanzados a los que solo se puede acceder mediante JSON-RPC que son geth
solo API de administración .
Se puede acceder a algunas de estas API desde javascript con web3Admin .
Juan Stanford
ismael