Ich habe vor kurzem begonnen, Truffle zu verwenden, um meine Entwicklung zu automatisieren/beschleunigen.
Da ich es immer noch verstehe, bin ich auf eine Barriere gestoßen, als ich versuchte, INFURA für Migrationen zu verwenden.
INFURA-Knoten antworten nicht auf blockFilter- Anfragen und daher funktionieren Migrationen in Truffle nicht wie in ihrem Truffle + INFURA-Integrationsbeitrag angegeben .
Irgendwelche Ideen, wie dies funktioniert, außer den Code von Truffle auf Polling zu ändern, anstatt Ereignisse zu empfangen? :)
BEARBEITEN: Nachdem ich nach einer Lösung gesucht hatte, um die Bereitstellung von Verträgen zu validieren, entschied ich mich für Augurs großartigen öffentlichen Knoten, der Filtermethoden verfügbar macht.
INFURA-Knoten sind öffentlich und erhalten viel Verkehr, und das ist der Grund, warum einige JSON-RPC-Methoden nicht zugelassen werden müssen. Wir arbeiten jedoch an einer Lösung, die alle Methoden verfügbar macht.
Vor einiger Zeit haben wir unsere Architektur geändert, sodass Load Balancer nicht das Problem sind.
Ich werde mich beim Truffle-Team über die Verwendung von Filtern erkundigen und diesen Beitrag aktualisieren.
Wenn Sie der Engine in Ihrer truffle.js einen FilterSubprovider von web3-provider-engine hinzufügen, können Sie den Vertrag für Ropsten bereitstellen. Ich habe dies nicht im Mainnet versucht.
const FilterSubprovider = require('web3-provider-engine/subproviders/filters.js')
engine.addProvider(new FilterSubprovider())
Infura gibt Ihnen keinen eigenen Knoten. Stattdessen betreiben sie einen Load-Balancer vor einem Pool gemeinsam genutzter Knoten. Aus diesem Grund verbieten sie zustandsmodifizierende Aufrufe.
Ich würde vorschlagen, dass Sie sich Folgendes ansehen: https://github.com/MetaMask/provider-engine Es ermöglicht Ihnen, einige RPC-Aufrufe vollständig clientseitig zu verarbeiten.
GPS