hyperledger fabric 1.4 智能合約開發(fā)

智能合約是一段代碼程序可以部署在區(qū)塊鏈平臺(tái)中。

在fabric中的智能合約分為兩大類,一種是系統(tǒng)智能合約,一種是用戶自定義合約,同時(shí)fabric中的智能合約也叫chaincode,鏈碼。

普通合約就是用戶自己定義開發(fā)的合約,用于完成用戶的業(yè)務(wù)需求。普通合約的生命周期滿足install, instantiate and upgrade(安裝,實(shí)例化,升級(jí))的步驟。普通智能合約是運(yùn)行在docker里面的,而且此docker會(huì)自動(dòng)生成和啟動(dòng)。

系統(tǒng)合約是fabric內(nèi)置的一些合約,用于完成系統(tǒng)性的特定操作。系統(tǒng)合約是運(yùn)行在peer節(jié)點(diǎn)中,而不是獨(dú)立的docker容器中。所有系統(tǒng)的智能合約不符合install, instantiate and upgrade這樣的生命周期。比如Lifecycle System Chaincode (lscc) 是生命周期系統(tǒng)合約,fabric用戶合約為什么能夠安裝和實(shí)例化其實(shí)就是由此系統(tǒng)合約控制的,而且當(dāng)實(shí)例化合約后,會(huì)生成一個(gè)區(qū)塊,Configuration System Chaincode (cscc),配置區(qū)塊系統(tǒng)合約,我們?cè)趺葱薷暮筒樵兠總€(gè)channel的配置區(qū)塊,就是由此系統(tǒng)合約控制的。

如需完整的學(xué)習(xí)fabric,可以參考視頻教程

fabric智能合約開發(fā)的語言支持三種java,go,nodejs,智能合約的demo樣例在https://github.com/hyperledger/fabric-samples/blob/release-1.4/chaincode/chaincode_example02/go/chaincode_example02.go
那么fabric智能合約有三個(gè)接口函數(shù),其中是Init函數(shù),Invoke函數(shù),main函數(shù)。

main函數(shù)是智能合約的入口,Init函數(shù)是初始化函數(shù),當(dāng)智能合約實(shí)例化的時(shí)候調(diào)用,Invoke函數(shù)是觸發(fā)函數(shù),當(dāng)對(duì)合約進(jìn)行除初始化以為的所有操作都在此函數(shù)調(diào)用。

fabric給的樣例合約比較簡(jiǎn)單,下一章節(jié)我們介紹智能合約的核心api

本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容