Как приложения без javascript могут взаимодействовать с узлами Ethereum?

Web3 реализует спецификацию Ethereum JSON-RPC и, по-видимому, является предпочтительным методом для связи между приложениями javascript и узлом Ethereum. Однако бывают ситуации, когда вы можете захотеть, чтобы приложение, не основанное на javascript, взаимодействовало с блокчейном, например:

  • IoT-устройства
  • Мониторы блокчейна
  • Оракулы и сервисы
  • Мосты между Ethereum и другим кодом на стороне сервера

Какие существуют способы связи с узлами Ethereum из других языков? То есть есть ли какие-либо библиотеки для Python, Java/Scala, Go, C++... ect, которые либо:

  • Реализовать спецификацию Json-RPC
  • Разрешить связь с использованием другого метода, например IPC.
  • Разрешить встраивание узла в существующий код и открыть интерфейс.

Ответы (1)

Вот несколько библиотек для взаимодействия с узлом Ethereum. Они сгруппированы по языку и примерно по последнему коммиту с соответствующими краткими примечаниями. Javascript был включен, поскольку он является альтернативой web3.js и обеспечивает ценность для общего списка.

Javascript

https://github.com/AugurProject/ethrpc с поддержкой IPC, последний коммит 1 день назад

https://github.com/tarrencev/ethjs написан на ES6, вызовы RPC возвращают обещание/поток, последняя фиксация 10 дней назад

питон

https://github.com/ConsenSys/ethjsonrpc все 62 метода JSON-RPC, последняя фиксация 11 дней назад

https://github.com/pipermerriam/ethereum-rpc-client RPC, последний коммит 2 января 2016 г.

https://github.com/pipermerriam/ethereum-ipc-client IPC, последний коммит 4 января 2016 г.

С# .NET

https://github.com/LawrenceBotley/EthereumRpc-NET , по-видимому, выполнил большую часть RPC, последний коммит 13 декабря 2015 г.

Рубин

https://github.com/tymat/ethereum-ruby кажется минимальным и существует 2 года назад.


Для других языков в качестве отправной точки доступны общие библиотеки JSON-RPC.

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

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

Спасибо, но, хотя создание собственного на основе общей библиотеки JSON-RPC является хорошим практическим подходом, я действительно спрашиваю, существуют ли какие-либо существующие библиотеки, которые оборачивают API Ethereum JSON-RPC в удобные методы (например, web3 в javascript). Например , этот клиент Python для Ethereum через IPC от pipemerriam.
Я вижу, спасибо за разъяснение. Добавлю что найду.
Есть ethereumj, для всех любителей Java.
@TheNeoNoirDeveloper Спасибо, я преобразовал ответ в вики и не стесняюсь добавлять Java и другие ресурсы :)
Кто-нибудь пробовал RPC-клиент python ethererum? Я попытался запустить скрипт Python, но у меня есть эта ошибка: ValueError: No JSON object could be decodedкогда я используюclient.get_coinbase()
@John Джон, у меня нет, и ваш вопрос может быть более заметным, если вы зададите его отдельно или вдобавок к проблеме Github.