Was ist der Unterschied zwischen der Verwendung von Golang und dem Schreiben von Code in Solidity, um eine dezentrale Anwendung zu erstellen?

Ich habe daran gearbeitet, meine erste dezentralisierte Anwendung zu erstellen, und ich arbeite derzeit an diesem Tutorial , das versucht, eine dezentralisierte Version von Twitter zu erstellen.

Ich möchte ein IPFS integrieren, um Daten von Benutzern zu speichern, aber eine andere Anleitung, die ich mir angesehen habe, verwendete Solidity als Sprache vor der Kompilierung.

Tatsächlich verteilt dieses Tutorial den Code nur als Go-Datei.

Ich bin verwirrt darüber, wie dies kompiliert und an die EVMs im Netzwerk verteilt werden könnte und wie der Prozess der Kompilierung dieser Anwendung ablaufen würde. Und außerdem - was sind die Unterschiede zwischen Golang und Solidity in Bezug auf das Schreiben dezentraler Anwendungen?

Antworten (2)

Es hängt davon ab, wie Sie „dezentralisierte Anwendung“ definieren und was Ihrer Meinung nach die Unterschiede zwischen einem Dapp und einem Smart Contract sind, wo sie in der Gesamtarchitektur sitzen und wie sich die Begriffe zueinander verhalten.

Soweit ich mich erinnern kann, als ich mir das Buch, auf das Sie verweisen, vor einiger Zeit angesehen hat, wird Go nicht als intelligente Vertragssprache verwendet (zumindest glaube ich nicht, dass dies der Fall ist ... ), was Solidity ist.

Links, die hilfreich sein könnten:

Ich bin verwirrt darüber, wie dies kompiliert und an die EVMs im Netzwerk verteilt werden könnte

Es gibt derzeit keine Möglichkeit, Smart Contracts in Go zu schreiben und sie in EVM-Bytecode kompilieren zu lassen. Dazu müssten Sie den Compiler schreiben. Warum dies speziell für Go eine schlechte Idee wäre, wurde in der Vergangenheit behandelt.

Siehe: Was ist der Vorteil, neue intelligente Vertragssprachen wie Solidity zu erstellen, anstatt andere Sprachen zu verwenden?

Von dem Typ, der den größten Teil des Geth-Codes schreibt ...:

"Vor einiger Zeit habe ich ziemlich viel Zeit damit verbracht, einen Go -> EVM-Cross-Compiler zu erstellen. Ich habe es geschafft, ein paar triviale Programme auszuführen, und es hat definitiv viel Spaß gemacht, aber ziemlich bald habe ich angefangen zu schlagen die Einschränkungen der EVM, die mit den Kernannahmen hinter Go kollidieren ... "

Und außerdem - was sind die Unterschiede zwischen Golang und Solidity in Bezug auf das Schreiben dezentraler Anwendungen?

Solidity ist eine intelligente Vertragssprache, Go, wie oben, ist es nicht und wird es wahrscheinlich nie sein, zumindest in Ethereum. Go könnte für andere Teile Ihrer Dapp verwendet werden, dh Teile des Front-Ends oder Teile des Back-Ends, das nicht die Blockchain ist.

Sowohl Go als auch Solidity sind Sprachen, die zur Entwicklung von Smart Contracts in Hyperledger Fabric (alias Chaincode) bzw. Ethereum-Blockchain-Plattformen verwendet werden.

Solidity ist darauf abgestimmt, mit der Ethereum Virtual Machine zu interagieren (obwohl wir mit Ethereum Smart Contracts mit Go interagieren können, aber keine Smart Contracts entwickeln).

Go wird hauptsächlich in Hyperledger Fabric verwendet, um Smart Contracts, auch „Chaincode“ genannt, zu entwickeln.

Unabhängig von der Plattform werden diese Sprachen verwendet, um Smart Contracts zu entwickeln. Smart Contracts sind Geschäftsregeln und logische Implementierungen jeder dezentralen Anwendung. Go und Solidity werden also im Wesentlichen nicht verwendet, um DApps selbst zu entwickeln, sondern die Regeln für die DApps, die wir Smart Contracts nennen.