Solidity

使用 Golang 和在 Solidity 中編寫程式碼來創建去中心化應用程序有什麼區別?

  • January 10, 2019

我一直致力於創建我的第一個去中心化應用程序,我目前正在編寫本教程,該教程試圖創建一個去中心化版本的 Twitter。

我想集成一個 IPFS 來儲存來自使用者的數據,但是我看過的另一個指南在編譯之前使用了 Solidity 作為語言。

實際上,本教程只是將程式碼作為 go 文件分發。

我很困惑如何將其編譯並分發到網路上的 EVM,以及編譯此應用程序的過程將如何進行。還有 - Golang 和 Solidity 在編寫去中心化應用程序方面有什麼區別?

這取決於您如何定義“去中心化應用程序”,以及您認為 Dapp 和智能合約之間的差異、它們在整體架構中的位置以及這些術語之間的關係。

從我之前看過你參考的書的記憶中,它沒有使用 Go 作為智能合約語言(至少我不認為它是……),這就是 Solidity。

可能有用的閱讀連結:

我對如何將其編譯並分發到網路上的 EVM 感到困惑

目前沒有辦法在 Go 中編寫智能合約,並將它們編譯為 EVM 字節碼。您必須編寫編譯器才能做到這一點。為什麼這是一個壞主意,特別是對於 Go,過去已經討論過了。

請參閱:創建新的智能合約語言(如 Solidity)而不是使用其他語言有什麼好處?

來自編寫大部分 Geth 程式碼的人…:

“前段時間我花了很多時間來創建一個 Go -> EVM 交叉編譯器。我確實設法執行了一些瑣碎的程序,這確實很有趣,但很快我就開始了EVM 的局限性與 Go 背後的核心假設相衝突……”

還有 - Golang 和 Solidity 在編寫去中心化應用程序方面有什麼區別?

Solidity 是智能合約語言,如上所述,Go 不是,而且可能永遠不會,至少在乙太坊中是這樣。Go 可以用於 Dapp 的其他部分,即前端的部分,或者不是區塊鏈的後端部分。

Go 和 Solidity 都是分別用於在 Hyperledger Fabric(又名 Chaincode)和乙太坊區塊鏈平台中開發智能合約的語言。

Solidity 被調整為與乙太坊虛擬機互動(雖然我們可以使用 Go 與乙太坊智能合約互動,但不能開發智能合約)。

Go 主要在 Hyperledger Fabric 中用於開發智能合約,也稱為“鏈碼”。

無論平台如何,這些語言都用於開發智能合約。智能合約是任何去中心化應用程序的業務規則和邏輯實現。所以,本質上 Go 和 Solidity 並不是用來開發 DApp 本身的,而是用來開發 DApp 的規則,我們稱之為智能合約。

引用自:https://ethereum.stackexchange.com/questions/31602