上一篇我們講解了在Linux環(huán)境下安裝和運(yùn)行Hyperledger Composer,對(duì)這玩意有個(gè)大概的印象皆看。本篇我們會(huì)了解下Hyperledger Composer的組件,以及內(nèi)部設(shè)計(jì)。
Composer架構(gòu)介紹
首先我們先看一下官方網(wǎng)站放出的一張示意圖:
很明顯可以看出,Hyperledger對(duì)這個(gè)項(xiàng)目的定位是Fabric的上層握截,由Composer創(chuàng)建出Model File(.cto文件), Script File(.js文件), ACL(.acl文件), Query File(.qry文件)等等,進(jìn)行打包成一個(gè)商業(yè)網(wǎng)絡(luò)文件(.bna文件)烂叔,發(fā)布到Fabric網(wǎng)絡(luò)中川蒙。
它的作用很明顯,就是加快Fabric項(xiàng)目的開(kāi)發(fā)和部署的一個(gè)官方工具长已。在使用前需要先對(duì)商業(yè)模型進(jìn)行快速建模。比如一個(gè)買(mǎi)賣(mài)房屋的商業(yè)模型如下:
- Assets(資產(chǎn)): 房屋清單
- Participants(參與者): 購(gòu)買(mǎi)人和屋主
- Transactions(交易過(guò)程): 完成買(mǎi)賣(mài)房屋昼牛,結(jié)算清單
參與者可以訪問(wèn)交易數(shù)據(jù)术瓮,但是受限于他們的角色。房屋中介可以創(chuàng)建一個(gè)應(yīng)用程序贰健,為買(mǎi)賣(mài)雙方提供一個(gè)簡(jiǎn)單的用戶(hù)接口胞四,看到交易的過(guò)程。商業(yè)網(wǎng)絡(luò)也可以集成已有的庫(kù)存系統(tǒng)伶椿,完成房屋資產(chǎn)的轉(zhuǎn)移辜伟。另外其他相關(guān)的角色都可以注冊(cè)加入到這個(gè)網(wǎng)絡(luò)成為參與者,比如土地局可能會(huì)參與到交易中脊另,完成土地所有權(quán)轉(zhuǎn)移导狡。
Composer關(guān)鍵概念
Composer是一個(gè)編程模型,包含一種建模語(yǔ)言偎痛,以及一組API旱捧,用于快速建網(wǎng)和應(yīng)用程序,允許參與者發(fā)起交易,轉(zhuǎn)移資產(chǎn)(Assets)枚赡。
Composer提供了兩套組件氓癌,一個(gè)基于瀏覽器的UI Playgroud,用于演示和展示本地Fabric網(wǎng)絡(luò)贫橙。此外還提供一套開(kāi)發(fā)工具集贪婉,為開(kāi)發(fā)者提供便利的開(kāi)發(fā)框架。
Blockchain State Storage
這里就是區(qū)塊鏈的概念了卢肃,交易歷史和資產(chǎn)都會(huì)直接保存在區(qū)塊鏈上疲迂,用區(qū)塊鏈做存儲(chǔ)。
Connection Profiles
就是一組JSON配置文件践剂,Composer通過(guò)這組被稱(chēng)為Connection Profiles配置文件鬼譬,定義了應(yīng)該連接到哪個(gè)系統(tǒng)上。Connection Profile通常需要由系統(tǒng)創(chuàng)建者提供逊脯,定義了各種網(wǎng)絡(luò)連接參數(shù)优质。
Assets
這里的資產(chǎn)(Assets)可以指代任何有型的和無(wú)形的資產(chǎn),可以上鏈的一切可交易的商品军洼,都可以作為資產(chǎn)巩螃。
Assets必須有唯一標(biāo)識(shí)符,此外匕争,還可以添加一些額外的信息避乏,用于關(guān)聯(lián)其他資產(chǎn)或者參與者等等。
Participants
參與者(Participants)是商業(yè)網(wǎng)絡(luò)的成員甘桑,可以擁有資產(chǎn)或發(fā)起交易拍皮。參與者也是模型化的,跟資產(chǎn)一樣跑杭,必須有唯一的標(biāo)識(shí)符铆帽,此外也可以包含其他可選屬性。一個(gè)參與者可以有一個(gè)或多個(gè)身份德谅。
Identities
對(duì)應(yīng)Fabric的PKI認(rèn)證的概念爹橱,通過(guò)密鑰確認(rèn)用戶(hù)身份的。
Business Network cards
Business Network cards就是一個(gè)Identitie窄做,一個(gè)connection profile愧驱,以及元數(shù)據(jù)的組合,元數(shù)據(jù)包含一個(gè)可選的連接到商業(yè)網(wǎng)絡(luò)名稱(chēng)椭盏。Business Network cards簡(jiǎn)化了連接商業(yè)網(wǎng)絡(luò)的過(guò)程组砚。
Transactions
交易,可以抽象為資產(chǎn)轉(zhuǎn)移的過(guò)程掏颊。
Queries
查詢(xún)返回的是區(qū)塊鏈當(dāng)中的數(shù)據(jù)惫确。只需要定義好商業(yè)網(wǎng)絡(luò),以及相關(guān)的變量,就可以輕松的利用Composer API從區(qū)塊鏈網(wǎng)絡(luò)中提取所需數(shù)據(jù)改化。
Events
事件是在商業(yè)網(wǎng)絡(luò)中定義的掩蛤,就跟定義資產(chǎn)或參與者同樣的方式。定義事件之后陈肛,就可以通過(guò)交易處理函數(shù)觸發(fā)揍鸟。應(yīng)用程序可以通過(guò)composer-client
API訂閱這些事件。
Access Control
商業(yè)網(wǎng)絡(luò)可以包含一組訪問(wèn)控制規(guī)則句旱。訪問(wèn)控制規(guī)則允許細(xì)粒度控制什么角色在什么條件下有什么樣的權(quán)限控制什么資產(chǎn)阳藻。
Historian registry
historian是專(zhuān)門(mén)用于成功交易記錄的,包含了發(fā)起交易的參與者和身份信息谈撒。historian將交易保存為HistorianRecord
資產(chǎn)腥泥,定義在 Composer系統(tǒng)的namespace中。
小結(jié)
本篇我們總結(jié)了下Composer的一些基礎(chǔ)概念啃匿,后面這些概念將用于Composer的開(kāi)發(fā)過(guò)程中蛔外。后續(xù)將進(jìn)一步介紹Composer的大致工作流,用Composer開(kāi)發(fā)的時(shí)候是一個(gè)怎樣的流程溯乒。