智能合約基礎語言:Solidity概述和開發工具的使用

智能合約基礎語言:Solidity概述和開發工具的使用
智能合約基礎語言:Solidity概述和開發工具的使用

一、目錄

☛Solidity的概述

☛Solidity開發工具remix的使用

☛Solidity本地開發工具remix安裝

二、Solidity的概述

Solidity 是一門為實現智能合約而創建的高級編程語言。這門語言受到了 C++,Python 和 Javascript 語言的影響,設計的目的是能在以太坊虛擬機(EVM)上運行。

Solidity 是靜態類型語言,支持繼承、庫和複雜的用户定義類型。 (靜態語言——每個變量包括局部和狀態變量都需要在編譯時指定變量類型或至少可以推導出類型)

以太坊底層是基於帳户,而非UTXO的,所以有一個特殊的Address的類型。用於定位用户,定位合約,定位合約的代碼(合約本身也是一個帳户)。

由於語言內嵌框架是支持支付的,所以提供了一些關鍵字,如payable,可以在語言層面直接支持支付,而且超級簡單。

存儲是使用網絡上的區塊鏈,數據的每一個狀態都可以永久存儲,所以需要確定變量使用內存,還是區塊鏈。

運行環境是在去中心化的網絡上,會比較強調合約或函數執行的調用的方式。因為原來一個簡單的函數調用變為了- 一個網絡上的節點中的代碼執行,分佈式的感覺。

最後一個非常大的不同則是它的異常機制,一旦出現異常,所有的執行都將會被回撤,這主要是為了保證合約執行的原子性,以避免中間狀態出現的數據不一致。

三、第一個實例

智能合約基礎語言:Solidity概述和開發工具的使用
智能合約基礎語言:Solidity概述和開發工具的使用

四、如何編寫Solidity

目前嘗試 Solidity 編程的最好的方式是使用 Remix (需要時間加載,請耐心等待)。Remix 是一個基於 Web 的 IDE,它可以讓你編寫 Solidity 智能合約,然後部署並運行該智能合約。

五、Solidity開發工具remix的使用

Solidity智能合約開發的IDE有很多,官方推薦的Remix是基於瀏覽器的。

1.官方工具:

[ http://remix.ethereum.org/#optimize=false&version=soljson-v0.4.24+commit.e67f0147.js ]

2.操作:手動編譯、自動編譯、選擇合約、查看編譯詳情、選擇運行環境、部署合約、函數調用、調試

3.Remix分兩個版本, 在線版和本地安裝版. 在線使用最方便直接用瀏覽器打開上邊的地址。 安裝版的界面和可以安裝到本地, 安裝的方式如下:

六、Solidity本地開發工具remix安裝

6.1 安裝步驟

1.1.1 安裝nodejs

Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行環境。可以在這個環境中運行JavaScript編寫的進程。 NPM 是Node.js 的包管理器,是全球最大的開源庫生態系統,可以安裝各種JavaScript編寫的進程。而本地版的remix就是用JavaScript編寫的工具,因此依賴nodejs運行環境。另外remix還用到了python語言編寫的模塊,所以還需要安裝python。

因此彼此的依賴關係是:

智能合約基礎語言:Solidity概述和開發工具的使用
智能合約基礎語言:Solidity概述和開發工具的使用

安裝Python的步驟:

https://www.runoob.com/python/python-install.html

安裝nodejs的步驟:

https://www.runoob.com/nodejs/nodejs-install-setup.html

安裝成功後打開終端查看版本號:

智能合約基礎語言:Solidity概述和開發工具的使用
智能合約基礎語言:Solidity概述和開發工具的使用

6.1.2 安裝remix-ide

智能合約基礎語言:Solidity概述和開發工具的使用
智能合約基礎語言:Solidity概述和開發工具的使用

6.1.3 修改文檔夾權限(Windows省略此步驟)

智能合約基礎語言:Solidity概述和開發工具的使用
智能合約基礎語言:Solidity概述和開發工具的使用

6.1.4 下載安裝包

https://github.com/ethereum/remix-ide 下載安裝包解壓。

智能合約基礎語言:Solidity概述和開發工具的使用
智能合約基礎語言:Solidity概述和開發工具的使用

6.1.5 啟動remix

啟動remix,然後打開 http://127.0.0.1:8080 編輯solidity。

智能合約基礎語言:Solidity概述和開發工具的使用
智能合約基礎語言:Solidity概述和開發工具的使用
智能合約基礎語言:Solidity概述和開發工具的使用
智能合約基礎語言:Solidity概述和開發工具的使用

文章聲明:本文為火星財經專欄作者作品,不代表火星財經觀點, 版權歸作者所有, 如需轉載,請提前聯繫作者 或註明出處。