1. 程式人生 > 實用技巧 >以太坊區塊鏈搭建與使用(五)-智慧合約Solidity

以太坊區塊鏈搭建與使用(五)-智慧合約Solidity

一、智慧合約Solidity開發工具

1、remix-ide線上版本,也可以去github下載安裝到本地。開發、編譯、釋出、執行、測試

2、remix-ide-cn線上中文版本,也可以去github下載安裝到本地。支援開發、編譯、釋出、執行、測試 。這個有個好用的地方就是部署的合約可以直接在這裡呼叫執行。

p.s. 一般開啟連結是空白可以試試Ctrl+F5強刷幾次試試。

3、Ethereum Studio 目前官網推出Ethereum Studio。線上版本,還是比較好用,不過目前沒看到可下載本地。

4、IntelliJIDEA Java開發者可以試試IDEA的外掛,不過開發與編譯好像要安裝2外掛才行。

二、智慧合約Solidity入門

Solidity是一種智慧合約高階語言,執行在Ethereum虛擬機器(EVM)之上。
Solidity與其它語言相關的特點?
它的語法接近於Javascript,是一種面向物件的語言。但作為一種真正意義上執行在網路上的去中心合約,它又有很多的不同,下面列舉一些:

  • 以太坊底層是基於帳戶,而非UTXO的,所以有一個特殊的Address的型別。用於定位使用者,定位合約,定位合約的程式碼(合約本身也是一個帳戶)。
  • 由於語言內嵌框架是支援支付的,所以提供了一些關鍵字,如payable
    ,可以在語言層面直接支援支付,而且超級簡單。
  • 儲存是使用網路上的區塊鏈,資料的每一個狀態都可以永久儲存,所以需要確定變數使用記憶體,還是區塊鏈。
  • 執行環境是在去中心化的網路上,會比較強調合約或函式執行的呼叫的方式。因為原來一個簡單的函式呼叫變為了一個網路上的節點中的程式碼執行,分散式的感覺。
  • 最後一個非常大的不同則是它的異常機制,一旦出現異常,所有的執行都將會被回撤,這主要是為了保證合約執行的原子性,以避免中間狀態出現的資料不一致。

Hello Wolrd!
聽起來高大上,其實入手玩起來也可以很簡單:
pragmasolidity ^0.4.0;contractHelloWorld{uintbalance;functionupdate(uint amount) returns (address, uint){balance+= amount;return(msg.sender, balance); } }
通過讀取引數輸入的新值,並將之累加至合約的變數中,返回傳送人的地址,和最終的累計值。

Solidity的完整語法:
入門說明:

值型別:

引用型別:

雜項:

單位:

語言內建特性:

進階:

合約詳解:

其它:

此文引用網路資源

hanko:以太坊區塊鏈搭建與使用(一)-私有鏈​zhuanlan.zhihu.comhanko:以太坊區塊鏈搭建與使用(二)-私有鏈配置與啟動​zhuanlan.zhihu.comhanko:以太坊區塊鏈搭建與使用(三)-聯盟鏈​zhuanlan.zhihu.comhanko:以太坊區塊鏈搭建與使用(四)-以太坊錢包工具​zhuanlan.zhihu.comhanko:以太坊區塊鏈搭建與使用(五)-智慧合約Solidity​zhuanlan.zhihu.comhanko:以太坊區塊鏈搭建與使用(六)-基於Java呼叫以太坊​zhuanlan.zhihu.com