孔壹學院:國內區塊鏈職業教育領先品牌
作者:黎躍春,區塊鏈、高可用架構工程師
微信:liyc1215 QQ羣:348924182 博客:http://liyuechun.org
相信大家都有學習各種開發語言的經歷,一般學習任何一門語言都會先從最簡單的HelloWorld開始,所以本篇文章,我們將編寫一個最基本的合約代碼,並且一步步講解如何通過Ethereum Wallet
將合約部署到區塊鏈,同時我們將通過本demo的演示如何通過發送數據和接收數據和合約進行交互。
Solidity合約的語法和麪向對象編程語言非常相似,一個合約有我們能夠調用的方法(函數)
和能夠存儲數據和讀取數據的屬性(狀態變量)
。
Counter合約源碼
我們的Counter
合約將increment
方法被調用的次數存儲到count
屬性中。並且每個人都可以通過getCount
方法獲取區塊鏈上count
的值。
pragma solidity ^0.4.4;
contract Counter {
/* 定義一個uint類型的count變量 */
uint count = 0;
/* 當這個方法被調用時count的值會加1 */
function increment() public {
count = count + 1;
}
/* 讀取count數據 */
function getCount() constant returns (uint) {
return count;
}
}
Counter合約部署
- 要想發佈我們的合約到區塊鏈,打開
Ethereum Wallet
然後點擊Contracts
。
- 點擊部署一個新合約。
- 將我們的
Counter
合約代碼拷貝到Ethereum Wallet
代碼區域。
- 選擇
Counter
合約,然後點擊DEPLOY
按鈕。
- 輸入當前部署的錢包的密碼,然後點擊
SEND TRANSACTION
按鈕。
- 查看最新交易。
- 查看交易信息。
和Counter合約互動
- 因爲我們部署的合約是部署在
Account 2
上的,所以我們可以點擊Account 2
查看最新的交易記錄。
- 點擊
Counter
按鈕,進入交互界面。
- 選擇
Increment
和Account 2
,然後點擊EXECUTE
按鈕。
- 輸入密碼,點擊
SEND TRANSACTION
按鈕。
- 交易執行完成後,count會自動加1
小結
部署合約時,因爲要往區塊鏈寫入數據,需要礦工進行驗證,所以需要花費一些gas獎勵給礦工,還有當我們每次調用increment
方法時,也屬於寫入數據,同樣需要花費gas,但是調用getCount
方法時只是從區塊鏈讀取數據,無需驗證,讀取數據無須花費gas。
技術交流
區塊鏈技術交流QQ羣:348924182
「區塊鏈部落」官方公衆號