通過前一篇文章,我發現我本身對於智能合約還有不少認識不足的地方,不少地方可能認識的不夠透徹,因此經過這篇文章的內容再來溫習一下合約從開發到部署和調用的流程。這篇文章將使用最簡單的方式來開發一個簡單的智能合約,部署使用控制檯的方式來部署。開發環境爲windows10.html
合約代碼
以太坊私鏈節點
remix在線編輯器
此次教程咱們使用一個愛情宣言來說述基礎的合約功能。java
pragma solidity ^0.4.11;
contract Love{
string man;
string woman;
string love_words;//愛情宣言
string status="未簽定";
function Love(string ma,string wom,string words){
woman=wom;
man=ma;
love_words=words;
}
function getloveWords() returns(string){
return love_words;
}
function getBothName() returns(string,string){
return (man,woman);
}
function order(){
status="已簽定";
}
function getStatus()returns (string){
return (status);
}
}
複製代碼
上面一共有4個成員變量和4個方法分別是:git
方法:github
其成員變量分別存放 雙方的姓名,愛情宣言,簽定狀態。web
方法提供了獲取愛情宣言,獲取雙方姓名,簽定和查看簽定狀態的方法。數據庫
最後這個合約還有一個構造函數:Love(string ma,string wom,string words)他和類名相同須要在建立合約時提供必要的參數(和java等語言中的構造函數同樣)。json
合約編輯通常使用remix編輯器來實現,他提供了代碼高亮,在線編譯,調試,運行的功能。windows
咱們將代碼複製到代碼區以後等待編譯完成,旁邊的detail從禁止狀態變成能夠狀態說明已經編譯經過了。bash
在remix中有一個run選項卡,經過該選項卡能夠很簡單的建立和運行合約。編輯器
經過create按鈕建立新的合約實例,輸入框中的參數用逗號隔開,字符串使用英文的雙引號引發來。建立好後的就能夠很方便的調用了。
經過控制檯建立合約稍微有點複雜,可是remix提供了很人性化的服務,將控制檯部署所須要的參數和代碼都給一一列出來了。
合約發佈前須要先解鎖帳戶,使用personal.unlockAccount(帳戶id)來交互式的解鎖帳戶。
而後複製上面提到的代碼,修改構造函數的參數,粘貼到控制檯中。
啓動挖礦,等待挖礦處理完成後會獲得合約的地址和交易hash,而且以前用到的 browser_snade_sol_love對象已經能夠被調用了。
經過實例的方法按鈕點擊既能夠調用合約的函數,部分須要傳參數的,經過數據庫輸入便可,和建立合約時相似。
從日誌窗體中能夠很清楚的看到此次調用的花費,參數和響應的信息。
經過合約發佈時的對象能夠很方便的調用合約方法其中方法調用分爲:
其中前兩個爲當須要修改區塊鏈數據或者合約數據的時候的調用方法,call的形式主要用於本地調用且不修改任何數據只讀等函數調用使用。
在這裏有個坑,有可能會出現Error: invalid address
,緣由是沒有傳from
,交易發起者的地址。
調用須要修改區塊鏈的方法後會獲得一個收據號,經過收據號能夠查詢處理進度。
總的來說合約的調用仍是很簡單的,後面的文字還將講到其餘的調用方式和經過其餘語言來調用合約。
web3.js編譯Solidity,發佈,調用所有流程(手把手教程)