¿Es posible llamar a una función de contrato inteligente "sin" instalar "Geth" o "Parity"?

¿Es posible llamar a una función de contrato inteligente para enviar una transacción (por ejemplo, escribir en la cadena de bloques de Ethereum) pero "sin" instalar clientes "Geth" o "Parity"?

En una pregunta más general, ¿es posible interactuar con Ethereum blockchain sin instalar Geth o Parity?

Puedes interactuar con un nodo existente como infura :)
¿Es posible usarlo infuraen un micro-controller, debido a las limitaciones de instalación Getho Parityen estos dispositivos? Gracias
Es solo un punto final, luego puede conectarse a través de json rpc

Respuestas (2)

Puede descargar el código del contrato y la parte de StateDB que este contrato usa para el almacenamiento, también la parte de SateDB de las direcciones involucradas en las llamadas del contrato, y luego puede usar binario para ejecutar el código de este contrato cmd/evm:

cmd/evm run --input 0xa5e4d2b41223289af53234 --code 0xcontract'scode ....

Es muy hacky, pero preguntaste si es posible y así es como es posible hacerlo sin instalar Getho Parity.

Sobre la pregunta genérica: interactuar con Ethereum sin usar un cliente, depende de la definición de "interactuar". Si se limita solo a enviar transacciones, entonces la respuesta corta es sí, siempre que:

  • tiene la clave privada de la cuenta
  • conocer el nonce de la cuenta
  • tiene el ABI del contrato llamado (no necesario para transacciones de pago simple).

Con lo anterior se puede construir byte a byte una transacción. Un ejemplo real está aquí . La transacción "en bruto" construida se puede enviar con herramientas como la emisora ​​​​de etherscan (bueno, en teoría, incluso esto se puede eliminar, pero luego se tendrá que implementar, al menos parcialmente, el protocolo RLPx ).

De hecho, esto es lo que hace que sea difícil censurar una transacción de blockchain: uno siempre puede construir la transacción fuera de línea y enviar los bytes a través de una publicación (o incluso voz) a amigos, quienes luego pueden ayudar a impulsar la red.

Aunque, el problema es que el envío "unidireccional" difícilmente puede llamarse "interactuando". Para que las cosas funcionen de dos maneras, se necesita un receptor, que deberá verificar la validez de los mensajes entrantes. Esto, a su vez, requiere la implementación completa del protocolo. Ahora acabamos de traer de vuelta "el cliente".

Para la pregunta original, llamar al método de un contrato sin usar geth o paridad, se puede usar la misma metodología de construcción de bytes de la publicación mencionada anteriormente, aunque el contrato ABI se vuelve necesario. Vea esta pregunta para más detalles.