Programmiersprachenübergreifender Solidity-Methodenaufruf

Ich habe mich gefragt, ob es für solidity möglich ist, Funktionen anderer Sprachen aufzurufen. Genauer gesagt plane ich die Entwicklung einer einfachen verteilten Suchmaschine mit der Ethereum-Blockchain und ich habe mich gefragt, ob ich das Web-Crawling und die Indizierung in einer anderen Sprache (Python usw.) schreiben und dann die Solidität haben könnte, entweder die lokalen Ergebnisse daraus zu sammeln oder rufen Sie die Methoden direkt auf. Ich bin mir bewusst, dass die Solidität abgeschlossen ist, aber in der Lage zu sein, in einer anderen Sprache zu entwickeln, würde Zeit bei der Verwendung der Bibliothek sparen und dann einfach die Solidität verwenden, um mit der Blockchain zu interagieren. Hoffentlich macht das Sinn, danke im Voraus,

Antworten (1)

Solidity wird in Bytecode kompiliert, der in der Blockchain gespeichert und von Bergleuten und vollständigen Knoten auf der EVM ausgeführt wird.

Es gibt keine Solidity-Compiler, die Solidity in Kombination mit anderen Sprachen unterstützen, die in einen einzelnen Bytecode kompiliert werden können, der auf dem EVM ausgeführt wird.

Davon abgesehen ist Solidity nicht die einzige Option für die Programmierung auf Ethereum.

Sie sollten sich andere EVM-kompatible Sprachen ansehen wie:

Aber was für Sie vielleicht noch interessanter sein könnte, ist die bevorstehende Unterstützung für ein Ethereum-ähnliches WebAssembly (eWASM).

Dies wird es Ihnen letztendlich ermöglichen, intelligente Verträge in gängigen Sprachen wie C++, Python, Rust usw. zu programmieren. Dieses Zeug befindet sich jedoch noch in einer sehr frühen Entwicklungsphase.

Vielen Dank für Ihre Antwort, aber ich sage nicht, dass Sie mehrere Sprachen in einen einzigen Bytecode kompilieren. Ich habe eher gefragt, ob es möglich ist, dass ein in einer Sprache geschriebenes Programm das Crawlen und Indizieren durchführt und die unbedingt lokale Indextabelle erstellt und dann eine hat solide geschriebenes Programm, um diese Daten im Wesentlichen aufzunehmen und zwischen den Knoten zu übertragen.
Anscheinend möchten Sie einfach Web3 verwenden, um die Blockchain zu lesen oder in sie zu schreiben. Ein externes Programm mit Web3 und Zugriff auf ein Ethereum-Konto, das die Berechtigung zum Zugriff auf einen Smart Contract hat, kann Daten programmgesteuert in die Blockchain schreiben. Zusätzlich kann ein externes Programm mit Web3 alle Daten lesen, die auf die Blockchain geschrieben wurden. Aber es gibt keine Möglichkeit für eine Solidity-Anwendung, Daten direkt von der Kette zu lesen. Alle externen Daten müssen in die Kette geschrieben werden, damit sie von einem Smart Contract abgeholt werden können. Hier kommen Orakel ins Spiel.