Fabric Hyperledger實(shí)戰(zhàn):用Go語言搭建Web應(yīng)用與區(qū)塊鏈進(jìn)行交互
二次開發(fā) admin 發(fā)布時間:2022-11-24 10:26:58 瀏覽: 次
簡而言之,Hyperledger Fabric 是IBM開源的一套區(qū)塊鏈的解決方案。Fabric相比其他聯(lián)盟鏈方案最大的優(yōu)勢有幾點(diǎn),
一是原生自帶的MSP(Member Service Provider),即人員組織權(quán)限管理,二是網(wǎng)絡(luò)節(jié)點(diǎn)拓?fù)鋱D原生符合聯(lián)盟鏈的組織關(guān)系需求,
三是各個模塊的可插拔,對開發(fā)人員比較友好。公共鏈領(lǐng)域,比特幣依然一騎絕塵,以太坊緊跟其后,企業(yè)級商用方案百花齊放,但是IMB的Hyperledger正在逐漸成為聯(lián)盟鏈方案的首選。
本文不再重復(fù)Hyperledger的環(huán)境搭建等基礎(chǔ)問題,以一個實(shí)戰(zhàn)的例子構(gòu)造一個基于Fabric Car的一個web應(yīng)用。
準(zhǔn)備工作:Fabric 環(huán)境已經(jīng)搭好。Fabcar Chaincode已經(jīng)安裝就緒。
服務(wù)器環(huán)境如下:
Centos 7.9
Docker 20.10.21
Go 1.17
Fabric Hyperledger 2.1
如果安裝了寶塔,也可以用寶塔配合安裝。
本文用Go語言首先構(gòu)造一個Web應(yīng)用框架,主要實(shí)現(xiàn)2個小功能:
1 查詢區(qū)塊鏈中的所有汽車
2 根據(jù)關(guān)鍵詞查詢符合條件的汽車。
主要代碼:
main.go
func main() {
http.HandleFunc("/query", query)
http.HandleFunc("/", welcome)
http.HandleFunc("/querysingle", querysingle)
http.HandleFunc("/singleresult", singleresult)
fmt.Println("server is starting http://localhost:39100")
err := http.ListenAndServe(":39100", nil)
if err != nil {
fmt.Println("error: ", err)
}
}
其他均為html代碼。
不再贅述,直接上圖。