區(qū)域鏈光速發(fā)展,在許多人的期許下歪今,已經(jīng)成為了互聯(lián)網(wǎng)下一個(gè)革新點(diǎn)萧锉。區(qū)塊鏈會(huì)成就的未來(lái)價(jià)值互聯(lián)網(wǎng),是新時(shí)代的基石朗兵。
IBM中國(guó)研究院開(kāi)發(fā)的超能云(SuperVessel)平臺(tái)提供了給區(qū)塊鏈愛(ài)好者污淋、開(kāi)發(fā)者的區(qū)塊鏈開(kāi)發(fā)測(cè)試環(huán)境。通過(guò)該平臺(tái)余掖,用戶(hù)能夠免費(fèi)寸爆、快速創(chuàng)建基于Hyperledger Fabric的多節(jié)點(diǎn)區(qū)塊鏈、并在自己的鏈上編寫(xiě)智能合約盐欺。
通過(guò)IBM的SuperVessel赁豆,我們能接觸區(qū)塊鏈,能自己部署和執(zhí)行智能合約冗美;通過(guò)Github上的開(kāi)源項(xiàng)目魔种,也就是上面提到的Hyperledger Fabric,我們能去了解區(qū)塊鏈技術(shù)如何實(shí)現(xiàn)粉洼。
所以节预,加油咯甲抖。
使用IBM超能云免費(fèi)構(gòu)建自己的區(qū)域鏈
下面介紹一下如何通過(guò)SuperVessel來(lái)構(gòu)建自己的區(qū)域鏈平臺(tái)。
區(qū)域鏈服務(wù)公測(cè)地址:http://crl.ptopenlab.com:8800/bc
進(jìn)入網(wǎng)址后心铃,使用自己的郵箱注冊(cè)即可准谚。
然后是到主頁(yè)點(diǎn)擊中間的那個(gè) “GIVE ME A BLOCKCHAIN”
接下來(lái)就是選擇Consensus Plugin(共識(shí)插件)和Size(區(qū)塊鏈網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量)。
Consensus Plugin是Hyperledger Fabric中共識(shí)插件去扣,有兩種:
- pbft是 微軟論文PBFT共識(shí)算法的一個(gè)實(shí)現(xiàn);
2.noops 用于開(kāi)發(fā)和測(cè)試柱衔,它沒(méi)有共識(shí)機(jī)制,但是會(huì)處理所有consensus message愉棱,所以如果要開(kāi)發(fā)自己的consensus plugin唆铐,從它開(kāi)始吧
我選擇的是pdft,4個(gè)節(jié)點(diǎn)奔滑。提交后就進(jìn)入了自己的區(qū)塊鏈監(jiān)控面板艾岂。
右側(cè)是網(wǎng)絡(luò)面板,展示申請(qǐng)到的區(qū)塊鏈網(wǎng)絡(luò)信息朋其,我的是4個(gè)節(jié)點(diǎn)王浴;左側(cè)是智能合約面板,包括智能合約的管理和部署梅猿;點(diǎn)擊右側(cè)面板右上角的望遠(yuǎn)鏡氓辣,則可以實(shí)時(shí)監(jiān)控各節(jié)點(diǎn)的日志信息。最下方是區(qū)塊鏈面板袱蚓,展示當(dāng)前區(qū)塊鏈的整體情況钞啸,初始狀態(tài)下只有一個(gè)區(qū)塊。
在智能合約面板里喇潘,已經(jīng)有了2個(gè)智能合約作為示例体斩,分別為map和chaincode_example02。其中map合約可以實(shí)現(xiàn)鍵值對(duì)(key-value)的存儲(chǔ)颖低,chaincode_example02合約可以模擬兩個(gè)人的轉(zhuǎn)賬和查詢(xún)絮吵。
部署合約
點(diǎn)擊chaincode_example02合約對(duì)應(yīng)的Deploy(部署)按鈕,并填寫(xiě)合約的初始化值枫甲,包括合約名源武、初始函數(shù)、初始參數(shù)想幻。
該合約初始函數(shù)為init粱栖,初始參數(shù)需按格式填寫(xiě),如["a","100","b","200"]表示注冊(cè)兩個(gè)人a和b脏毯,分別給他們100單位和200單位闹究。
點(diǎn)擊Deploy按鈕,該合約將部署在你的區(qū)塊鏈中食店,該過(guò)程大約需要20~40秒時(shí)間渣淤。當(dāng)區(qū)塊鏈面板出現(xiàn)一個(gè)新區(qū)塊赏寇,通常表示合約已部署完成。
部署過(guò)程中价认,右側(cè)面板還會(huì)有動(dòng)畫(huà)嗅定。
下面,我們來(lái)看一下智能合約用踩。
智能合約是 1990s 年代由尼克薩博提出的理念渠退,幾乎與互聯(lián)網(wǎng)同齡。由于缺少可信的執(zhí)行環(huán)境脐彩,智能合約并沒(méi)有被應(yīng)用到實(shí)際產(chǎn)業(yè)中碎乃,自比特幣誕生后,人們認(rèn)識(shí)到比特幣的底層技術(shù)區(qū)塊鏈天生可以為智能合約提供可信的執(zhí)行環(huán)境惠奸,以太坊首先看到了區(qū)塊鏈和智能合約的契合梅誓,發(fā)布了白皮書(shū)《以太坊:下一代智能合約和去中心話應(yīng)用平臺(tái)》,并一直致力于將以太坊打造成最佳智能合約平臺(tái)佛南,所以比特幣引領(lǐng)區(qū)塊鏈梗掰,以太坊復(fù)活智能合約。
調(diào)用合約
部署完成后共虑,在智能合約管理面板的My Deployment(我的部署)標(biāo)簽下查看已部署的合約實(shí)例愧怜。
點(diǎn)擊Action下方的Invoke按鈕調(diào)用智能合約,并填寫(xiě)調(diào)用的方法名和相應(yīng)參數(shù)(不同合約的方法名和參數(shù)含義不同妈拌,具體與合約內(nèi)容相關(guān)哦)。如對(duì)該合約蓬蝶,調(diào)用invoke方法名尘分,填寫(xiě)參數(shù)[“a”,”b”,”50”],表示a給b轉(zhuǎn)50個(gè)單位丸氛。
點(diǎn)擊Submit完成調(diào)用培愁,可以看到下方出現(xiàn)了新的區(qū)塊:
智能合約
智能合約程序不只是一個(gè)可以自動(dòng)執(zhí)行的計(jì)算機(jī)程序:它自己就是一個(gè)系統(tǒng)參與者。它對(duì)接收到的信息進(jìn)行回應(yīng)缓窜,它可以接收和儲(chǔ)存價(jià)值定续,也可以向外發(fā)送信息和價(jià)值。
這個(gè)程序就像一個(gè)可以被信任的人禾锤,可以臨時(shí)保管資產(chǎn)私股,總是按照事先的規(guī)則執(zhí)行操作。
通過(guò)自己實(shí)際操作恩掷,invoke操作兩個(gè)用戶(hù)之間的“轉(zhuǎn)賬”倡鲸,是不是就能更理解這段話了?
查詢(xún)合約
調(diào)用完成后黄娘,接下來(lái)你可以查詢(xún)合約執(zhí)行結(jié)果峭状。仍然在My Deployment標(biāo)簽下克滴,點(diǎn)擊Action下方的Query按鈕查詢(xún)智能合約,并填寫(xiě)查詢(xún)的方法名和相應(yīng)參數(shù)优床。如選擇query方法名劝赔,填寫(xiě)參數(shù)[“a”],表示查詢(xún)a的當(dāng)前單位胆敞。
點(diǎn)擊Submit后可以看到上方出現(xiàn)了一個(gè)黑框框着帽,輸出a的當(dāng)前單位為50。
好了竿秆,接下來(lái)可以繼續(xù)操作該合約启摄,觀察區(qū)塊鏈情況。
總結(jié)
相信通過(guò)以上操作幽钢,你也已經(jīng)大概了解了什么是區(qū)塊鏈歉备,什么是智能合約,以及區(qū)塊鏈?zhǔn)怯脕?lái)干什么的匪燕。從上面的例子中蕾羊,我們可以看出:區(qū)塊鏈?zhǔn)怯脕?lái)記錄合約的動(dòng)作變化的。
另外帽驯,可以看一下區(qū)塊鏈部分龟再,用鼠標(biāo)點(diǎn)擊一個(gè)區(qū)塊,可以看到彈出來(lái)的此區(qū)塊內(nèi)容:
type是操作內(nèi)容尼变,invoke是執(zhí)行利凑,depoly是部署。每個(gè)動(dòng)作都記錄在了區(qū)塊鏈上嫌术,而網(wǎng)絡(luò)中(我們的四個(gè)節(jié)點(diǎn))哀澈,每個(gè)節(jié)點(diǎn)又都記錄著區(qū)塊鏈。無(wú)論我們?cè)谀膫€(gè)節(jié)點(diǎn)上操作度气,我們的操作都會(huì)被記錄到區(qū)塊鏈中割按,從而實(shí)現(xiàn)了區(qū)塊鏈的不可篡改、分布式磷籍、去中心化等性質(zhì)适荣。
感興趣了話,或者說(shuō)院领,更感興趣了的話弛矛,就去Github上star一下、fork一下栅盲、clone一下Hyperledger Fabric汪诉,然后用Go或JavaScript來(lái)編寫(xiě)自己的智能合約,然后再把它上傳到你的區(qū)塊鏈網(wǎng)絡(luò)中吧!
參考資料: