Wie können Nicht-Javascript-Anwendungen mit Ethereum-Knoten kommunizieren?

Web3 implementiert die Ethereum JSON-RPC-Spezifikation und scheint die bevorzugte Methode für die Kommunikation zwischen einer Javascript-Anwendung und dem Ethereum-Knoten zu sein. Es gibt jedoch Situationen, in denen Sie beispielsweise möchten, dass eine nicht auf Javascript basierende Anwendung mit der Blockchain interagiert:

  • IoT-Geräte
  • Blockchain-Monitore
  • Orakel und Dienste
  • Brücken zwischen Ethereum und anderem serverseitigem Code

Welche Methoden gibt es für die Kommunikation mit Ethereum-Knoten aus anderen Sprachen? Das heißt, gibt es Bibliotheken für Python, Java/Scala, Go, C++ ... ect, die entweder:

  • Implementieren Sie die Json-RPC-Spezifikation
  • Erlauben Sie die Kommunikation mit einer anderen Methode wie IPC.
  • Ermöglicht das Einbetten eines Knotens in bestehenden Code und das Verfügbarmachen einer Schnittstelle.

Antworten (1)

Hier sind einige Bibliotheken für die Interaktion mit einem Ethereum-Knoten. Sie sind nach Sprache gruppiert und ungefähr nach ihrem letzten Commit, mit entsprechenden kurzen Anmerkungen. Javascript wurde aufgenommen, da es Alternativen zu web3.js darstellt und einen Mehrwert für die Gesamtliste darstellt.

Javascript

https://github.com/AugurProject/ethrpc mit IPC-Unterstützung, letzter Commit vor 1 Tag

https://github.com/tarrencev/ethjs geschrieben in ES6, RPC-Aufrufe geben ein Promise/Stream zurück, letzter Commit vor 10 Tagen

Python

https://github.com/ConsenSys/ethjsonrpc alle 62 JSON-RPC-Methoden, letzter Commit vor 11 Tagen

https://github.com/pipermerriam/ethereum-rpc-client RPC, letzter Commit am 2. Januar 2016

https://github.com/pipermerriam/ethereum-ipc-client IPC, letzter Commit am 4. Januar 2016

C# .NET

https://github.com/LawrenceBotley/EthereumRpc-NET scheint den Großteil des RPC erledigt zu haben, letzter Commit am 13. Dezember 2015

Rubin

https://github.com/tymat/ethereum-ruby scheint minimal zu sein und von vor 2 Jahren


Für andere Sprachen stehen allgemeine JSON-RPC-Bibliotheken als Ausgangspunkt zur Verfügung.

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

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

Danke, aber während das Erstellen Ihrer eigenen auf der Grundlage einer allgemeinen JSON-RPC-Bibliothek ein guter praktischer Ansatz ist, frage ich wirklich, ob es vorhandene Bibliotheken gibt, die die Ethereum -JSON-RPC-API in praktische Methoden einschließen (wie es web3 in Javascript tut). Zum Beispiel dieser Python-Client für Ethereum über IPC von pipermerriam.
Ich verstehe, danke für die Klarstellung. Ich werde etwas von dem hinzufügen, was ich finde.
Es gibt auch ethereumj für alle Java-Liebhaber
@TheNeoNoirDeveloper Danke, ich habe die Antwort in Wiki konvertiert und füge gerne Java und andere Ressourcen hinzu :)
Hat jemand den Python-Ethererum-RPC-Client ausprobiert? Ich habe versucht, das Python-Skript auszuführen, aber ich habe diesen Fehler: ValueError: No JSON object could be decodedwenn ich verwendeclient.get_coinbase()
@John habe ich nicht und Ihre Frage ist möglicherweise besser sichtbar, wenn Sie sie separat stellen, oder zusätzlich ein Github-Problem.