Большинство приложений подключаются к узлу Ethereum через RPC, используя такие библиотеки, как Web3.js и Nethereum. Это приводит к необходимости развертывания полного узла рядом с приложением, будь то на сервере или компьютере пользователя, и связи через сокеты через адаптер обратной связи.
Эта практика кажется мне удивительной - очевидная альтернатива - упаковать клиента как часть моего серверного приложения и запустить его в процессе. Есть ли у клиентов Ethernet API для использования в качестве библиотеки и считается ли он подходящим и «хорошим»? Я имею в виду либо запуск их как части серверной части, либо в полнофункциональном настольном клиенте.
Насколько я знаю, нет полноценного клиента, который можно было бы загрузить в браузере. Существует клиент узла для Ethereum, созданный командой EthereumJS, который, похоже, находится в грубом состоянии. Здесь вы найдете вопрос, похожий на ваш.
Однако обратите внимание, что встраивание полного клиента может быть плохой идеей по многим причинам:
Клиент должен будет синхронизироваться, чтобы иметь возможность иметь предыдущие состояния. Если вы присмотритесь к размеру цепочки, вы обнаружите, что она размером в гигабайты, что было бы огромной загрузкой для браузеров, тем более, если ваше соединение ограничено.
Браузер должен будет обрабатывать транзакции, обрабатывать состояния и т. д. Это потребует значительного количества ресурсов.
Кроме того, обратите внимание, что вам не нужно создавать свой собственный узел, вам просто нужно знать некоторые доступные узлы, и вы можете решить указать эти узлы в своем dApp в качестве поставщиков, что избавит вас от необходимости развертывания собственного узла.
Владимир Акопян
Владимир Акопян