В чем разница между JSON-RPC, Javascript API и web3.js?

Когда я начинаю заниматься блокчейн-разработкой (Эфириум), я часто не понимаю, в чем точная разница между web3.js [ссылка здесь] и спецификацией JSON-RPC для Эфириума на этой странице . И о чем эта документация ?

Они такие же? Если нет, то как они связаны?

Это то geth conosoleже самое, что и JSON-RPC?

Я пытался найти разные ответы, и, похоже, многие ответы имеют тенденцию смешиваться между JSON-RPC и web3.js.

Ответы (3)

Вики Javascript API — это документ для версии 0.2xx Web3js. Большинство учебных пособий в Интернете используют эту версию, поскольку недавно была выпущена версия 1.0.0. Web3js на web3js.readthedocs.io — это еще один документ Web3js для версии 1.0.0, который сильно отличается от 0.2xx, что объясняет, почему для этой библиотеки существуют два разных документа.

JSON-RPC — это версия протокола удаленного вызова процедур. Если вы погуглите «RPC», вы узнаете, что его можно легко использовать/реализовать на многих разных языках, а не только на Javascript.

С точки зрения функциональности они в основном одинаковы, но есть много версий и много руководств, использующих разные версии, поэтому это немного сбивает с толку.

JSON-RPC — это облегченный протокол удаленного вызова процедур (RPC) без сохранения состояния. В первую очередь эта спецификация определяет несколько структур данных и правила их обработки. Он не зависит от транспорта в том смысле, что концепции могут использоваться в одном и том же процессе, через сокеты, через HTTP или во многих различных средах передачи сообщений. Он использует JSON (RFC 4627) в качестве формата данных.


Библиотека web3.js представляет собой набор модулей, которые позволяют вам взаимодействовать с локальным или удаленным узлом Эфириума, используя соединение HTTP или IPC.

JSON-RPC — это основной протокол для взаимодействия с клиентом Ethereum. Web3.js — это оболочка javascript вокруг JSON-RPC. Web3.js дает больше удобства, но меньшую гибкость (например, с запросами), чем JSON-RPC.