Einfachste Möglichkeit, Solidity im Browser des Benutzers zu kompilieren?

Ich möchte solidity im Browser kompilieren. web3verfügt über veraltete compile()Funktionen, sodass Sie nicht web3.eth.compile.solidity()mehr anrufen können.

Ich habe es versucht, browserify require('solc') / require('solc/wrapper')damit ich versuchen kann, auf Kompilierungsfunktionen zuzugreifen, aber es scheint Probleme zu geben.

Ich habe ein Projekt namens browser-solc gefunden, das dies tut , aber es wurde zuletzt vor einem Jahr aktualisiert, und ich bin mir nicht sicher, ob ich mich darauf verlassen möchte.

Eine Option besteht darin, einfach einen Endpunkt zu erstellen und ihn serverseitig auszuführen und das Ergebnis an den Benutzer zur Verwendung in der intelligenten Vertragsbereitstellung zurückzugeben.

Alle Gedanken oder Lösungen zu diesem Thema sind willkommen.

Wenn Ihre Frage beantwortet wurde, könnten Sie sie bitte als beantwortet markieren, damit andere Benutzer Bescheid wissen? Danke dir :)

Antworten (2)

Für die lokale Entwicklung kleiner Nebenprojekte habe ich den Online- Compiler remix verwendet .

Als das Projekt voranschritt, begann ich, diese Berechnung serverseitig mit der von mir verwendeten Ethereum-Implementierung durchzuführen: EthereumJ .

In meinem Fall wollte ich den Vertrag nur einmal erstellen, da er sich nicht ändern würde. Ihr spezifischer Anwendungsfall bestimmt wahrscheinlich, wo die Binärdateien erstellt werden.

Ich würde Sie in die Richtung von solc-js verweisen . Es funktioniert hervorragend für die clientseitige Kompilierung imo.

Trüffel ist, wie ich es mache.

npm i truffle

Und es hat seine eigene Geth-Engine, sodass Sie testrpc nicht installieren müssen, damit es funktioniert. Mehr Infos hier: https://github.com/trufflesuite/truffle

Ich habe Trüffel verwendet, aber das ist für die Bereitstellung auf Ihrem lokalen Host/Server, richtig? Ich nehme an, ich könnte ein Endpunktskript schreiben, das Trüffel auf meinem Serverende ausführt und die Daten an den Benutzer zurücksendet.
Ja, wir verwenden Trüffel als einsatzbasierten Regressionstest. aber es erlaubt Ihnen auch, Ihre eigenen Editoren und Linting-Tools zu verwenden, um einfache Syntaxfehler zu verhindern und Codevervollständigung durchzuführen. Remix ist in Ordnung für Einzelvertragsentwicklungen, aber wenn Sie ein Spinnennetz von Verträgen mit Datenvertrags- und Bibliotheksvertragsaufrufen erstellen, Sie müssen eine voll funktionsfähige Umgebung wie die von testrpc haben. Sie sollten keinen Entwicklungscode auf Testnet bereitstellen, nur Vorproduktionstests sollten dorthin gehen.