
一、為什么要有hyper ledger fabric
? ? ? ?區(qū)塊鏈發(fā)展到今天,經(jīng)歷了從bitcoin到ethereum再到EOS以及其他一些區(qū)塊鏈項(xiàng)目的一個(gè)發(fā)展歷程,從bitcoin的數(shù)字黃金,到ethereum的圖靈完備的區(qū)塊鏈操作系統(tǒng)和智能合約(smart contract)的提出,以及EOS企業(yè)操作系統(tǒng)DPOS(委托權(quán)益證明共識(shí)算法)。我們看到整個(gè)分布式賬本(distribute ledger)技術(shù)在朝著各自的領(lǐng)域蓬勃發(fā)展,我們?yōu)榱酸槍?duì)不同的應(yīng)用場(chǎng)景提出了不同的區(qū)塊鏈架構(gòu)。這些區(qū)塊鏈架構(gòu)都是在區(qū)塊鏈三角形(分布性、安全性、可擴(kuò)展性)三者之間進(jìn)行著平衡。而到了hyper ledger fabric就是一款適合于企業(yè)聯(lián)盟組織的安全高效的區(qū)塊鏈系統(tǒng),其主要應(yīng)用在企業(yè)級(jí)的應(yīng)用。接下來我會(huì)從網(wǎng)絡(luò),共識(shí)、密碼學(xué)安全、以及權(quán)限控制各個(gè)方面逐一展開討論,遵照一個(gè)從整體到局部再到整體的思路進(jìn)行分析。
二、Hyper ledger Fabric模型
Assert:定義了hyperledger網(wǎng)絡(luò)中所有具有貨幣屬性的資源,使得所有的這些資源交換成為可能,這些資源甚至可以是食物,汽車甚至是期貨。
Chaincode:鏈碼的執(zhí)行是從交易排序分離出來的(交易被打包然后執(zhí)行),這也限制了對(duì)跨節(jié)點(diǎn)類型的驗(yàn)證和信任的要求水平(不同的鏈碼執(zhí)行會(huì)通知到不同的channel,不同的peer會(huì)根據(jù)權(quán)限訂閱不同的channel),這樣做也優(yōu)化了網(wǎng)絡(luò)擴(kuò)展性和性能。
Ledger Features:每個(gè)通道所對(duì)應(yīng)的賬本是不可變的和有限權(quán)限共享的,該賬本編碼了整個(gè)交易歷史,賬本還提供了類sql的查詢能力用于高效認(rèn)證和爭(zhēng)端解決。
Privacy through Channel:通過通道保持隱私(這就相當(dāng)于是fabric網(wǎng)絡(luò)里面的信息專線),各種通道使用不同的字符交易使得競(jìng)爭(zhēng)性的商業(yè)活動(dòng)和受管制的工業(yè)活動(dòng)所要求的的高度隱私性和保密性成為可能。
Security&Membership service:安全性和成員關(guān)系服務(wù),成員關(guān)系授權(quán)措施提供了一個(gè)可信任的區(qū)塊鏈網(wǎng)絡(luò)。參與方知道所有被已授權(quán)的監(jiān)管人和審計(jì)人偵測(cè)和跟蹤的交易。也就是是參與方了解到的交易來自于授權(quán)的監(jiān)管人和審計(jì)人哪里。(事務(wù)是經(jīng)過審計(jì)和監(jiān)管的)
Consensus:獨(dú)一無二的共識(shí)運(yùn)行機(jī)制使得企業(yè)對(duì)松耦合和可寬展型共識(shí)的需求成為可能。
三、Fabric的架構(gòu)
? ? ? ?關(guān)于架構(gòu)可以說是一個(gè)比較大的話題,但是不管如何,都是從整體上來把控這個(gè)系統(tǒng),這可以說就是該系統(tǒng)的架構(gòu)。
? ? ? ? 區(qū)塊鏈?zhǔn)怯稍S多彼此通信的節(jié)點(diǎn)組成的分布式系統(tǒng),區(qū)塊鏈運(yùn)行的是被稱為鏈碼Chaincode(智能合約)的程序,并且區(qū)塊鏈掌握著狀態(tài)和賬本數(shù)據(jù),并執(zhí)行交易。鏈碼是中心元素,因?yàn)樗^的交易就是牽扯到鏈碼的操作。交易必須要被背書(驗(yàn)證,證明無誤和合法),并且僅有被背書過的交易才能被提交到區(qū)塊鏈中,并對(duì)狀態(tài)產(chǎn)生影響。可能存在一個(gè)或者多個(gè)特別的鏈碼用于系統(tǒng)的管理功能和參數(shù)設(shè)置,統(tǒng)稱為系統(tǒng)鏈碼。更多詳情請(qǐng)參閱Fabric架構(gòu)。再接下來的章節(jié)中,我會(huì)從代碼出發(fā)進(jìn)行說明,以及進(jìn)一步展開討論。