前言
區塊鏈今年發展真是飛快。從最初一個陌生的概念,到如今已經在各個行業起步,星星之火大有燎原之勢。真希望能擁有自己的區塊鏈練練手O(∩_∩)O~。可是一個人、一台電腦,怎麼才能搭起來區塊鏈環境……火到不行的區塊鏈,想說愛你不容易。
Don’t Worry! 小編已經沉迷於區塊鏈和智能合約不可自拔。現在就手把手帶你從零開始,5分鐘玩轉屬於自己的區塊鏈。
IBM中國研究院開發的超能雲(SuperVessel)平台提供了給區塊鏈愛好者、開發人員的區塊鏈開發測試環境。通過該平台,使用者能夠免費、超快速建立基於Hyperledger Fabric的多節點區塊鏈、並在自己的鏈上花式玩轉智能合約。 準備工作
只需要你的本地瀏覽器即可。 註冊一個帳號
訪問超能雲(SuperVessel)區塊鏈服務的公測地址http://crl.ptopenlab.com:8800/bc
點擊右上方Log in(登入)按鈕,在彈出的視窗中點擊Register(註冊),填寫郵箱和密碼後提交。此時建議去郵箱查看啟用郵件,並啟用自己的帳號(小編提示:懶的啟用也沒關係,只是某些進階服務必須啟用後才能使用哦)。
快速建立自己的區塊鏈
註冊完成後,回到首頁,點擊偌大的GIVE ME A BLOCKCHAIN(給我一個區塊鏈。)按鈕。在彈出框中選擇你想要的Consensus Plugin(共識外掛程式)和Size(區塊鏈網路節點數量)。
小編備忘:目前可選Hyperledger Fabric官方提供的兩種共識外掛程式:noops和pbft**。
點擊Submit(提交)後,幾秒後就能得到自己的區塊鏈,並自動進入監控面板。沒錯,拿到一個屬於自己的區塊鏈就是這麼簡單。
進入監控面板後可以看到,左側是智能合約管理面板,包括對智能合約的管理和部署;右側是網路面板,展示申請到的區塊鏈網路情況,拓撲、節點之間的延遲資訊等一目瞭然;點擊右上方的望遠鏡表徵圖,則可以即時監控各節點的日誌資訊。最下方是區塊鏈面板,展示當前區塊鏈的整體情況,初始狀態下只有一個區塊。 部署和使用智能合約
接下來,小編教你如何在自己的區塊鏈上部署和使用智能合約。
在智能合約管理面板的Smart Contracts(智能合約)標籤下列出了2個智能合約作為樣本,分別為map和chaincode_example02。其中map合約可以實現索引值對(key-value)的儲存,chaincode_example02合約可以類比兩個人的轉賬和查詢。
小編備忘:這2個樣本合約的代碼可在Hyperledger Fabric源碼中找到(https://github.com/hyperledger/fabric/tree/master/examples/chaincode/go)。
以部署和使用chaincode_example02合約為例: 部署合約
點擊chaincode_example02合約對應的Deploy(部署)按鈕,並填寫合約的初始化值,包括合約名、初始函數、初始參數。該合約初始函數為init,初始參數需按格式填寫,如[“a”,”100”,”b”,”200”]表示註冊兩個人a和b,分別給他們100單位和200單位。
點擊Deploy按鈕,該合約將部署在你的區塊鏈中,該過程大約需要20~40秒時間。當區塊鏈面板出現一個新區塊,通常表示合約已部署完成。
調用合約
部署完成後,在智能合約管理面板的My Deployment(我的部署)標籤下查看已部署的合約執行個體。
點擊Action下方的Invoke按鈕調用智能合約,並填寫調用的方法名和相應參數(不同合約的方法名和參數含義不同,具體與合約內容相關哦)。如對該合約,調用invoke方法名,填寫參數[“a”,”b”,”50”],表示a給b轉50個單位。
點擊Submit完成調用後,可以查看區塊鏈情況,此時會產生新的區塊。
查詢合約
調用完成後,接下來你可以查詢合約執行結果。仍然在My Deployment標籤下,點擊Action下方的Query按鈕查詢智能合約,並填寫查詢的方法名和相應參數。如選擇query方法名,填寫參數[“a”],表示查詢a的當前單位。
點擊Submit後可以看到a的當前單位為50。你可以再去查詢b試試看。
OK,接下來你可以繼續操作該合約,觀察區塊鏈情況,或者在該區塊鏈上再部署一個新智能合約,比如map。為了方便使用,部署、調用和查詢合約的方法名和參數格式都預設填好了,你只需選擇一個方法名,照貓畫虎改改參數就好。看看你能把鏈玩到多長~ 上傳並測試自己的私人智能合約
除了目前提供的兩個公有智能合約,你還可以上傳並測試自己的私人合約。私人合約只有自己能看到。
在Smart Contracts標籤下點擊Import private smart contract。
填寫合約名和描述,並上傳合約代碼檔案後,點擊Import,完成上傳。
之後Smart Contracts列表裡便出現我上傳的合約,可以像前文一樣進行部署、調用和查詢了。
感興趣的開發人員不妨去學習一下Hyperledger Fabric源碼中的合約樣本(https://github.com/hyperledger/fabric/tree/master/examples/chaincode/go),動手編寫並在平台上測試自己的第一個智能合約吧。 http://www.aibbt.com/a/14934.html