相比于比特幣所提供的極為受限的交易腳本語言,以太坊所提供的智能合約極大增強了區(qū)塊鏈的功能,同時也為區(qū)塊鏈賦予了可編程性。通過以太坊平臺提供的智能合約編程語言和相應(yīng)的對智能合約進行解釋執(zhí)行的以太坊虛擬機,區(qū)塊鏈開發(fā)者可以直接在以太坊平臺上進行各種可能的操作的開發(fā),賦予以太坊區(qū)塊鏈各種方向的應(yīng)用。
我們可以將以太坊視為一個可以實現(xiàn)去中心化應(yīng)用的平臺,其核心是一套用于運行以太坊的節(jié)點所要執(zhí)行的智能合約進行編程的語言,及相應(yīng)地在保證節(jié)點運行其他服務(wù)的環(huán)境不受影響的條件下,對所編寫的智能合約語言進行解釋執(zhí)行的虛擬機。用戶通過調(diào)用以太坊提供的接口,對自己所希望部署的去中心化應(yīng)用進行編寫。
在調(diào)用時,通過共識協(xié)議在所有以太坊節(jié)點間,同將要執(zhí)行的智能合約達成一致,進而在每個節(jié)點的EVM上執(zhí)行。具體地可以將智能合約理解為代碼和數(shù)據(jù)的集合。
以太坊所提供的智能合約編程語言是圖靈完備的,亦即以太坊的智能合約可以做到所有能夠用圖靈機做到的事情,類似于常見的高級編程語言,如C++、GoLang 等 。 以 太 坊 提 供 了 幾 套 編 寫 智 能 合 約 的 高 級 語 言 , 如Solidity、Viper、Serpent及LLL等,其中目前較為流行的是Solidity及Viper。以太坊默認的智能合約編程語言是Solidity,該語言編寫的智能合約對應(yīng)的文件擴展名為.sol,目前有許多可用的在線Solidity集成開發(fā)環(huán)境(IDE),如Browser-Solidity Web IDE等,用戶可以很方便地在其上編寫并編譯自己所需的智能合約代碼。
用戶通過這些高級語言編寫出較為復(fù)雜的智能合約代碼后,對應(yīng)的代碼進而被編譯為可以在EVM上執(zhí)行的EVM字節(jié)碼,這些字節(jié)碼再被上傳至以太坊區(qū)塊鏈從而使所有節(jié)點均可獲取代碼段,從而使每個節(jié)點都能夠利用本地的EVM對字節(jié)碼進行執(zhí)行。
2aF85ObxjDQWdHBDGQ9tcHr2kVU says:
nimabi says:
2Z19Ge3DgSgTf1c8FhaMOchYRbp says: