Недавно я начал использовать Truffle для автоматизации/ускорения разработки.
Поскольку я все еще разбираюсь в этом, я столкнулся с барьером при попытке использовать INFURA для миграции.
Узлы INFURA не отвечают на запросы blockFilter , поэтому миграции в Truffle не работают, как указано в сообщении об интеграции Truffle + INFURA .
Любые идеи о том, как заставить это работать, кроме изменения кода Truffle для опроса вместо получения событий? :)
РЕДАКТИРОВАТЬ: после поиска любого решения для проверки развертывания контрактов я просто остановился на большом общедоступном узле Augur, который предоставляет методы фильтрации.
Узлы INFURA являются общедоступными и получают много трафика, поэтому некоторые методы JSON-RPC необходимо запретить. Однако мы работаем над решением, которое сделает доступными все методы.
Некоторое время назад мы изменили нашу архитектуру, поэтому балансировщики нагрузки не являются проблемой.
Я узнаю у команды Truffle об использовании фильтров и обновлю этот пост.
Добавление FilterSubrovider из web3-provider-engine в движок вашего truffle.js позволит вам развернуть контракт в Ropsten, я не пробовал это в основной сети.
const FilterSubprovider = require('web3-provider-engine/subproviders/filters.js')
engine.addProvider(new FilterSubprovider())
Infura не дает вам собственный узел. Вместо этого они запускают балансировщик нагрузки перед пулом общих узлов. Вот почему они запрещают вызовы, изменяющие состояние.
Я бы посоветовал вам изучить: https://github.com/MetaMask/provider-engine . Он позволяет вам полностью обрабатывать некоторые вызовы RPC на стороне клиента.
ГНСПС