如何低代碼開(kāi)發(fā)區(qū)塊鏈應(yīng)用 | 《超話區(qū)塊鏈》回顧

區(qū)塊鏈技術(shù)近年來(lái)在國(guó)內(nèi)迅速發(fā)展,并在眾多領(lǐng)域開(kāi)展探索并有不少應(yīng)用落地。作為一門新型技術(shù),區(qū)塊鏈技術(shù)在助力企業(yè)效率提升的同時(shí),在人力成本、聯(lián)盟鏈兼容等方面仍然需要釋放更多可能性。
首先是智能合約庫(kù),它包含了基礎(chǔ)類型層,結(jié)構(gòu)數(shù)據(jù)層、通用功能層、上層業(yè)務(wù)層。
基礎(chǔ)類型層:它包含數(shù)學(xué)運(yùn)算、字符串相關(guān)操作、數(shù)組操作和地址操作等。
數(shù)據(jù)結(jié)構(gòu)層:它包含一些數(shù)據(jù)結(jié)構(gòu),例如可迭代映射、鏈表等。
通用功能層:它包含一些crud合約,還有一些密碼學(xué)操作。
上層業(yè)務(wù)層:包含溯源,存證等業(yè)務(wù)模板。
其次是合約編譯插件。傳統(tǒng)的操作方式是上傳合約到控制臺(tái),跑腳本,再將合約的內(nèi)容拷貝出來(lái),頻繁的編譯和調(diào)試過(guò)程需花費(fèi)大量的時(shí)間。而合約編輯插件只需執(zhí)行簡(jiǎn)單的指令,全自動(dòng)生成放到指定的位置,不用做額外拷貝。
最后是應(yīng)用開(kāi)發(fā)腳手架,腳手架生成通用的DAPP項(xiàng)目結(jié)構(gòu)。
首先,它包含合約、ABI和BIN關(guān)于合約相關(guān)的一些資源文件。
其次就是代碼,可以分成兩部分:connection,config,utils,這些是用來(lái)連接區(qū)塊鏈和FISCO BCOS。
再其次是service和POJO。service對(duì)應(yīng)的是智能合約的調(diào)用,POJO是智能合約的函數(shù)輸入。service的方法對(duì)應(yīng)的是智能合約中的函數(shù),調(diào)用service的方法,會(huì)自動(dòng)進(jìn)行拼裝交易、回執(zhí)解析。
腳手架的原理包含如下幾點(diǎn),首先進(jìn)行一些通用的檢測(cè),然后生成模板文件,對(duì)智能合約進(jìn)行編譯,解析ABI的每一個(gè)合約的每一個(gè)函數(shù),讀取它的參數(shù),拼裝成對(duì)應(yīng)的Java類,最后生成項(xiàng)目的構(gòu)建。
首先訪問(wèn)智能合約庫(kù)地址,它包括上層業(yè)務(wù),基礎(chǔ)類型、數(shù)據(jù)結(jié)構(gòu)、通用功能層,可以看到一些庫(kù)文件,還有一些demo,很方便去調(diào)用庫(kù)里的文件。
其次是合約編譯插件的實(shí)操。合約編輯插件其實(shí)使用起來(lái)也是很簡(jiǎn)單的,首先打開(kāi)官方文檔,對(duì)builg.gradle進(jìn)行依賴等配置,然后執(zhí)行g(shù)radle solc即可,插件會(huì)讀取到項(xiàng)目的hello world合約,默認(rèn)會(huì)從contract來(lái)讀取合約, 然后生成ABI和Java合約。
最后是應(yīng)用開(kāi)發(fā)腳手架演示。先將腳手架的代碼給拷貝下來(lái)。進(jìn)入tools目錄,在contract已經(jīng)默認(rèn)放了合約,然后是config.ini,這里可以定義一些常用的內(nèi)容,比如項(xiàng)目名、group組、編譯編譯器的版本、solidity版本等,我們可以按需改這些內(nèi)容。在windows和UNIX環(huán)境下會(huì)提供一個(gè)bat文件和shell文件。
我們來(lái)看下生成的項(xiàng)目。這是一個(gè)springboot項(xiàng)目,里面有對(duì)應(yīng)的依賴,包括像Java SDK,springboot等,從生成的代碼看,最核心的代碼是hello world service,它對(duì)應(yīng)hello world合約,service則對(duì)應(yīng)著合約里面的set和get函數(shù),調(diào)用set函數(shù)或者get函數(shù),從而調(diào)用對(duì)應(yīng)的智能合約。
從resource目錄可知,里面包含了智能合約的輸入和輸出。同時(shí)也有conf目錄,幫助大家將鏈的節(jié)點(diǎn)上的一些證書(shū)拖下來(lái),可以放在conf目錄。application、properties是springboot的比較標(biāo)準(zhǔn)的配置文件。
從test目錄可知, test里面會(huì)放了一些常用的功能,比如生成私鑰,部署一個(gè)合約,開(kāi)發(fā)者可以根據(jù)自己的想法,把這些功能放到demo里。這就是腳手架生成的demo項(xiàng)目,它包含很多以智能合約為核心的功能。
最后,歡迎大家一起共同建設(shè)區(qū)塊鏈應(yīng)用開(kāi)發(fā)組件,智能合約庫(kù)長(zhǎng)期征集合約庫(kù)代碼,里面有幾十個(gè)任務(wù)任大家挑選,完成任務(wù)還將獲得禮品,歡迎參與!
點(diǎn)擊閱讀原文參與智能合約庫(kù)活動(dòng)。
SmartDev-Contract 智能合約庫(kù)組件
SmartDev-SCGP 合約編譯插件
SmartDev-Scaffold 應(yīng)用開(kāi)發(fā)腳手架
https://github.com/WeBankBlockchain/SmartDev-Scaffold
《超話區(qū)塊鏈》
《超話區(qū)塊鏈》是由FISCO BCOS 開(kāi)源社區(qū)推出的直播活動(dòng),每周四晚8點(diǎn),社區(qū)邀請(qǐng)一位技術(shù)極客或應(yīng)用先鋒,做客直播間分享開(kāi)發(fā)實(shí)踐或應(yīng)用心得。作為社區(qū)固定欄目,《超話區(qū)塊鏈》已舉辦近百場(chǎng),從技術(shù)研討到產(chǎn)業(yè)應(yīng)用均有觸達(dá),歡迎大家自薦或推薦朋友到直播間分享。公眾號(hào)對(duì)話框回復(fù)小助手入群觀看直播。

