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