¿Cómo pueden comunicarse las aplicaciones que no son de JavaScript con los nodos de Ethereum?

Web3 implementa la especificación JSON-RPC de Ethereum y parece ser el método preferido para la comunicación entre una aplicación javascript y el nodo Ethereum. Sin embargo, hay situaciones en las que es posible que desee que una aplicación no basada en javascript interactúe con la cadena de bloques, por ejemplo:

  • dispositivos IoT
  • Monitores de cadena de bloques
  • Oráculos y servicios
  • Puentes entre Ethereum y otro código del lado del servidor

¿Qué métodos existen para comunicarse con los nodos de Ethereum de otros idiomas? Es decir, ¿hay bibliotecas para Python, Java/Scala, Go, C++... etc. que:

  • Implementar la especificación Json-RPC
  • Permita la comunicación utilizando algún otro método como IPC.
  • Permita que un nodo se incruste dentro del código existente y exponga una interfaz.

Respuestas (1)

Aquí hay algunas bibliotecas para interactuar con un nodo Ethereum. Están agrupados por idioma y, aproximadamente, según su última confirmación, con las notas breves correspondientes. Se ha incluido Javascript ya que son alternativas a web3.js y aportan valor a la lista general.

JavaScript

https://github.com/AugurProject/ethrpc con soporte IPC, última confirmación hace 1 día

https://github.com/tarrencev/ethjs escrito en ES6, las llamadas RPC devuelven una promesa/transmisión, última confirmación hace 10 días

Pitón

https://github.com/ConsenSys/ethjsonrpc los 62 métodos JSON-RPC, última confirmación hace 11 días

https://github.com/pipermerriam/ethereum-rpc-client RPC, último compromiso 2 de enero de 2016

https://github.com/pipermerriam/ethereum-ipc-client IPC, último compromiso 4 de enero de 2016

C# .NET

https://github.com/LawrenceBotley/EthereumRpc-NET parece haber realizado la mayoría de RPC, última confirmación el 13 de diciembre de 2015

Rubí

https://github.com/tymat/ethereum-ruby parece ser mínimo y desde hace 2 años


Para otros lenguajes, las bibliotecas JSON-RPC generales están disponibles como punto de partida.

https://en.wikipedia.org/wiki/JSON-RPC#Implementaciones

http://json-rpc.org/wiki/implementaciones

Gracias, pero si bien hacer el suyo propio basado en una biblioteca JSON-RPC general es un buen enfoque práctico, realmente estoy preguntando si hay bibliotecas existentes que envuelvan la API Ethereum JSON-RPC en métodos convenientes (como lo hace web3 en javascript). Por ejemplo , este cliente de Python para Ethereum sobre IPC de pipermerriam.
Ya veo, gracias por aclarar. Añadiré algo de lo que encuentre.
Hay ethereumj, también para todos los amantes de Java.
@TheNeoNoirDeveloper Gracias, convertí la respuesta a wiki y siéntete libre de agregar Java y otros recursos :)
¿Alguien probó el cliente rpc de python ethererum? Intenté ejecutar el script de python pero tengo este error: ValueError: No JSON object could be decodedcuando estoy usandoclient.get_coinbase()
@John No lo he hecho y su pregunta podría ser más visible si la hace por separado, o si además es un problema de Github.