Web3.js или Web3.py? Какой более зрелый API для взаимодействия с Ethereum?

Я начал новый проект Dapp, и я пытаюсь найти лучший способ для быстрого прототипа (back-end и front-end dev). Я в основном знаком с Python, поэтому я ищу каждый элемент, чем могу, для создания Dapp на Python, и я спрашиваю, достаточно ли зрелая среда Python для использования с Ethereum.

По зрелости я спрашиваю, какой язык наиболее популярен у лучшего сообщества, с хорошей стабильностью и с лучшей интеграцией в фреймворк Truffle/Ganache?

Спасибо !

«Я начал новый проект Dapp» — вы хотите, чтобы пользователи посещали и использовали ваше Dapp в браузере? Затем вам придется написать эту часть в web3.js. Если у вас есть другие задачи автоматизации, которые взаимодействуют с блокчейном, вы можете предпочесть web3.py. Это больше зависит от того, как вы хотите его использовать, а не от того, какой из них более зрелый.
Да, я хочу, чтобы некоторые пользователи были в моем Dapp через веб-браузер, но почему я не мог использовать web3.py с веб-фреймворком Python, таким как Django или Bottle?
Вы можете использовать web3.py на стороне сервера, но только для некоторых аспектов Dapp. Например, пользователи не смогут подписывать транзакции для взаимодействия с вашим контрактом. Для этого вам нужно настроить web3.js на стороне клиента Dapp.
Я не понимаю, почему я не мог использовать web3.py на стороне клиента, если я использую веб-фреймворк Django, например? Невозможно использовать web3.py, настроив функцию, которая будет вызываться из внешнего интерфейса?
Как мы видим здесь: ethereum.stackexchange.com/questions/13128/… — Мы можем использовать Web3.js с Node.js, так почему мы не можем использовать аналогичную логику для python?

Ответы (1)

Преимущества web3.js

  • JavaScript — единственный язык, который работает внутри веб-браузеров, поэтому у вас нет другого варианта при создании интерфейсов, ориентированных на пользователя.

  • Сообщество web3.js больше из-за того, что JavaScript де-факто является языком внешнего интерфейса.

Преимущества web3.py

  • Обратите внимание, что вы также можете использовать web3.py в настольных приложениях, командной строке, программировании на стороне сервера и средах тестирования.

  • Код, взаимодействующий со смарт-контрактами, легче читать и выполнять из-за использования потоков.

  • Тестирование фреймворков и тестирование наших смарт-контрактов с помощью web3.py поставляется с более зрелыми инструментами, что упрощает написание более читаемых и удобных тестов.

  • Python — это язык разработки EVM следующего поколения (Casper), который лучше подходит для исследовательских целей.

Очень интересный ответ, спасибо! По вашему мнению, у web3.py большое будущее в экосистеме Ethereum, и я полностью согласен с вами, что Python более читаем, чем javascript. Но на самом деле сообщество более активно работает с JavaScript, и, согласно web3.py GitHub, некоторые ошибки все еще остаются открытыми. Но неважно, я попытаюсь построить свой проект на python, посмотрим, сработает ли он!
web3.py gitter очень дружелюбен, и с небольшим терпением вы получите хорошие ответы
web3.py не поддерживает eth_subscribe github.com/ethereum/web3.py/issues/1402