¿Es posible hacer una llamada REST dentro de la consola geth?

Quiero escuchar eventos en un contrato y luego enviarlos a un punto final de descanso.

  1. ¿Es posible hacer una llamada REST dentro de la consola geth?

  2. Alternativamente, si tengo una aplicación de nodo y cargo web3, ¿cómo puedo conectarme a la red de prueba?

Considere aceptar la respuesta, puede hacerlo marcando el signo de verificación debajo de los votos.

Respuestas (1)

Sí, puede realizar RESTllamadas geth consoleespecíficamente desde la Consola de JavaScript de go-ethereum

Como se explica en el oficial cómo

Es posible especificar el conjunto de API que se ofrecen a través de una interfaz con el --${interface}apiargumento de la línea de comando para el demonio go ethereum. ¿Dónde ${interface}puede ser rpc para la interfaz http o ipc para un socket unix en unix o canalización con nombre en Windows?

Para determinar qué API proporciona una interfaz, se puede usar la transacción de módulos, por ejemplo, a través de una interfaz ipc en sistemas Unix:

echo '{"jsonrpc":"2.0","method":"modules","params":[],"id":1}' | nc -U $datadir/geth.ipc

la conexión a testnet se realiza mediante geth, no mediante la interfaz web3. y web3 se usa para cualquier instancia de geth, independientemente de si está testado o en vivo.

Leer Conexión a la red

el método sería geth -—networkid="12345" consoleque puede leer más sobre el bloque de génesis personalizado, etc. en la wiki.

Entonces, si lo entiendo correctamente, en mi cliente geth, si lo comencé con jsonrpc para su comunicación con ethereum, esa API está disponible para mi propio código que se ejecuta dentro de geth para hacer mis propias llamadas a otros servidores de descanso que no son de ethereum. (Quiero grabar eventos de contrato sobre una llamada de descanso a algún otro servidor)
@JamesB No es necesario consultar otro servicio, su nodo está syncjunto con todos los demás nodos, eso es por diseño.
Quiero hacer una llamada de descanso (usando javascript) a un servicio diferente que no sea ethereum para registrar eventos de la cadena de bloques (no a un nodo geth diferente) el código para escuchar el evento está en mi nodo geth local y luego llama externamente a la cadena de bloques a través de http
Puede usar loadScriptla función de la consola geth javascript para cargar un archivo javascript normal en la consola y ejecutar funciones. intenta de esa manera.
Gracias, aunque parece que ni la XMLHttpRequestclase ni el módulo http están disponibles, así que no parece que vaya a funcionar. Solo debería poder ejecutar geth localmente que se conecta a la red de prueba y luego ejecutar Puedo instalar una aplicación de nodo que se carga web3.jsy se conecta a geth como puerta de enlace y luego hace todo mi descanso y la interactividad de blockchain, ¿verdad?
@JamesB Sí, así es. Estaba equivocado. incluirlo web3.jsen su propio archivo html o una aplicación de nodo funcionará bien.