Hyperledger Fabric簡(jiǎn)介

英文簡(jiǎn)介:http://hyperledger-fabric.readthedocs.io/en/latest/blockchain.html

中文簡(jiǎn)介:https://hyperledgercn.github.io/hyperledgerDocs/blockchain_zh/

簡(jiǎn)介

Hyperledger Fabric是一個(gè)提供分布式賬本解決方案的平臺(tái)。Hyperledger Fabric由模塊化架構(gòu)支撐茁肠,并具備極佳的保密性为鳄、可伸縮性欲账、靈活性和可擴(kuò)展性。Hyperledger Fabric被設(shè)計(jì)成支持不同的模塊組件直接拔插啟用,并能適應(yīng)在經(jīng)濟(jì)生態(tài)系統(tǒng)中錯(cuò)綜復(fù)雜的各種場(chǎng)景。

Hyperledger Fabric提供了一個(gè)獨(dú)特的可伸縮匀钧、可擴(kuò)展的架構(gòu),這也是Hyperledger Fabric與其他區(qū)塊鏈解決方案的顯著區(qū)別谬返。假如你正在計(jì)劃部署具備完整審查機(jī)制以及開源架構(gòu)的企業(yè)級(jí)區(qū)塊鏈之斯,Hyperledger Fabric是你的一個(gè)不錯(cuò)的起點(diǎn)。

對(duì)于初學(xué)者遣铝,推薦首先閱讀下文中的簡(jiǎn)介佑刷,以便于理解區(qū)塊鏈的工作原理、具有的主要特點(diǎn)以及Hyperledger Fabric中包含的組件酿炸。

如果你已經(jīng)對(duì)區(qū)塊鏈和Hyperledger Fabric有所了解瘫絮,可直接閱讀快速入門,在快速入門中包含相關(guān)示例填硕、技術(shù)規(guī)格以及APIs等等麦萤。

區(qū)塊鏈?zhǔn)鞘裁矗?/h1>

分布式賬本

一個(gè)區(qū)塊鏈網(wǎng)絡(luò)的核心是一個(gè)分布式賬本,在這個(gè)賬本中記錄了網(wǎng)絡(luò)中發(fā)生的所有交易信息扁眯。

區(qū)塊鏈賬本通常被定義為去中心化壮莹,這是因?yàn)樵谡麄€(gè)網(wǎng)絡(luò)中,每個(gè)參與者都保存著一個(gè)區(qū)塊鏈賬本的副本姻檀,所有參與者通過(guò)協(xié)作共同維護(hù)著賬本命满。接下來(lái)我們會(huì)看到,去中心化與協(xié)作這兩個(gè)特點(diǎn)在現(xiàn)實(shí)世界的商業(yè)貨物交易和商務(wù)服務(wù)中展現(xiàn)出的顯著優(yōu)點(diǎn)绣版。

除了去中心化與協(xié)作胶台,區(qū)塊鏈的另一個(gè)顯著特點(diǎn)是信息在只能以“附加”的方式記錄在區(qū)塊鏈中,同時(shí)使用加密技術(shù)保障了交易一旦被添加進(jìn)賬本中杂抽,就無(wú)法被篡改诈唬。區(qū)塊鏈的這種不可篡改性使得信息來(lái)源的確認(rèn)變得異常容易,這是由于參與者可以肯定信息一旦被寫入?yún)^(qū)塊鏈中就幾乎不可被篡改缩麸。這也是為什么區(qū)塊鏈常常也被稱為證明的系統(tǒng)的原因铸磅。

智能合約

為了持續(xù)的進(jìn)行信息的更新,以及對(duì)賬本進(jìn)行管理(寫入交易匙睹,進(jìn)行查詢等)愚屁,區(qū)塊鏈網(wǎng)絡(luò)引入了智能合約來(lái)實(shí)現(xiàn)對(duì)賬本的訪問(wèn)和控制。

智能合約不僅僅可用于在區(qū)塊鏈網(wǎng)絡(luò)中打包信息痕檬,它們也可以被用于自動(dòng)的執(zhí)行由參與者定義的特定交易操作。

例如送浊,買賣雙方可以定義一個(gè)智能合約梦谜,以保證當(dāng)賣方發(fā)貨的商品運(yùn)送到達(dá)時(shí),買方支付的貨款會(huì)自動(dòng)轉(zhuǎn)賬給賣方。

共識(shí)

保持網(wǎng)絡(luò)中所有賬本交易的同步流程唁桩,就是共識(shí)闭树。共識(shí)保證了賬本只會(huì)在交易雙方都確認(rèn)后才進(jìn)行更新。同時(shí)在賬本更新時(shí)荒澡,交易雙方能夠在賬本中的相同位置报辱,更新一個(gè)相同的交易信息。

后面我們會(huì)詳細(xì)介紹賬本单山、智能合約和共識(shí)的相關(guān)內(nèi)容碍现。但目前為止,我們只需把區(qū)塊鏈理解為一個(gè)共享的米奸,通過(guò)智能合約更新的多副本交易系統(tǒng)昼接,同時(shí)這個(gè)系統(tǒng)通過(guò)協(xié)作共識(shí)機(jī)制保證了網(wǎng)絡(luò)中所有賬本副本的同步。

區(qū)塊鏈為什么切實(shí)可行悴晰?

當(dāng)前的記錄系統(tǒng)

自從商業(yè)數(shù)據(jù)記錄網(wǎng)絡(luò)系統(tǒng)誕生以來(lái)慢睡,直到今天的交易網(wǎng)絡(luò)并沒(méi)有發(fā)生太大的變化。在商業(yè)網(wǎng)絡(luò)中的成員進(jìn)行相互交易時(shí)铡溪,他們各自維護(hù)著自己獨(dú)立的交易記錄漂辐。同時(shí),人們交易的物品——無(wú)論是16世紀(jì)佛蘭德的掛毯棕硫,還是現(xiàn)代的有價(jià)證券——都任然需要在每次賣出交易過(guò)程中提供來(lái)源信息者吁,以確保賣方擁有所出售商品的所有權(quán)。

當(dāng)前的商業(yè)網(wǎng)絡(luò)就像下圖描述的一樣:

隨著科技的進(jìn)步饲帅,上圖中的交易流程不斷演化發(fā)展复凳,經(jīng)歷了從使用石碑、使用紙質(zhì)賬本灶泵、使用硬盤存儲(chǔ)器直到使用云計(jì)算平臺(tái)的不同階段育八,但流程的底層架構(gòu)并沒(méi)有發(fā)生任何變化。并不存在一個(gè)可以統(tǒng)一管理網(wǎng)絡(luò)參與者身份的系統(tǒng)赦邻,確認(rèn)商品來(lái)源十分費(fèi)勁髓棋,常常會(huì)耗費(fèi)數(shù)天的時(shí)間明確證券的交易(包含數(shù)以萬(wàn)計(jì)美元的數(shù)量)。人們必須簽訂合約并手動(dòng)執(zhí)行惶洲,每一個(gè)系統(tǒng)中的數(shù)據(jù)庫(kù)都包含著獨(dú)立的信息并最終代表一個(gè)單點(diǎn)的錯(cuò)誤按声。

在今天的信息和過(guò)程共享斷裂的方法中,建立一個(gè)跨越商業(yè)網(wǎng)絡(luò)的記錄系統(tǒng)是不可能的恬吕,盡管可見性和信任的需求是明確的签则。

區(qū)塊鏈的不同點(diǎn)

那我們?yōu)槭裁床挥谩艾F(xiàn)代”的交易系統(tǒng)來(lái)替代這種效率低下的網(wǎng)絡(luò)?新的商業(yè)網(wǎng)絡(luò)可以具有標(biāo)準(zhǔn)的方法建立身份信息铐料,執(zhí)行交易渐裂,并且存儲(chǔ)數(shù)據(jù)豺旬。為什么不建立一個(gè)可信的交易鏈條記錄?通過(guò)查詢這個(gè)鏈條上的所有交易柒凉,來(lái)確定交易商品來(lái)源族阅,并且這個(gè)鏈條上的信息一旦被寫入,就無(wú)法被再次篡改膝捞。

以上描述的商業(yè)網(wǎng)絡(luò)就如下圖所示:

這就是區(qū)塊鏈網(wǎng)絡(luò)坦刀。在區(qū)塊鏈網(wǎng)絡(luò)中,每一個(gè)參與者都保有一份賬本的副本蔬咬。在區(qū)塊鏈網(wǎng)絡(luò)中鲤遥,不僅僅是賬本信息會(huì)被共享,更新賬本的流程也是共享的计盒。不同于目前的系統(tǒng)——參與者使用私有的程序?qū)?strong>私有的賬本進(jìn)行更新渴频,而區(qū)塊鏈系統(tǒng)使用共享的程序?qū)?strong>共享的賬本進(jìn)行更新。

通過(guò)使用共享賬本協(xié)調(diào)整個(gè)商業(yè)網(wǎng)絡(luò)北启,區(qū)塊鏈網(wǎng)絡(luò)能夠減少時(shí)間卜朗、成本以及隱私信息泄露的風(fēng)險(xiǎn),并且能使流程更加可信和透明咕村。

現(xiàn)在你已經(jīng)明白了什么是區(qū)塊鏈以及它的用途场钉。同時(shí)還有許多其他的內(nèi)容也非常重要,他們是信息與流程共享的基礎(chǔ)知識(shí)懈涛。

Hyperledger Fabric是什么逛万?

2015年,Linux基金會(huì)啟動(dòng)了Hyperledger項(xiàng)目批钠,目標(biāo)是發(fā)展跨行業(yè)的區(qū)塊鏈技術(shù)宇植。Hyperledger項(xiàng)目并不僅僅是定義一個(gè)單一的區(qū)塊鏈標(biāo)準(zhǔn),它更鼓勵(lì)通過(guò)開源社區(qū)的力量協(xié)作開發(fā)區(qū)塊鏈技術(shù)埋心。

Hyperledger Fabric是Hyperledger中的一個(gè)區(qū)塊鏈項(xiàng)目指郁。與其他區(qū)塊鏈技術(shù)類似,Hyperledger Fabric包含一個(gè)賬本拷呆,使用智能合約并且是一個(gè)通過(guò)所有參與者管理交易的系統(tǒng)闲坎。

Hyperledger Fabric與其他區(qū)塊鏈系統(tǒng)最大的不同體現(xiàn)在私有和許可。與開放無(wú)需許可的網(wǎng)絡(luò)系統(tǒng)允許未知身份的參與者加入網(wǎng)絡(luò)不同(需要通過(guò)工作量證明協(xié)議來(lái)保證交易有效并維護(hù)網(wǎng)絡(luò)的安全)茬斧,Hyperledger Fabric通過(guò)Membership Service Provider(MSP)來(lái)登記所有的成員腰懂。

Hyperledger Fabric也提供了多個(gè)可拔插選項(xiàng)。賬本數(shù)據(jù)可被存儲(chǔ)為多種格式项秉,共識(shí)機(jī)制可被接入或者斷開绣溜,同時(shí)支持多種不同的MSP。

Hyperledger Fabric提供了建立channel的功能伙狐,這允許參與者為交易新建一個(gè)單獨(dú)的賬本涮毫。當(dāng)網(wǎng)絡(luò)中的一些參與者是競(jìng)爭(zhēng)對(duì)手時(shí)瞬欧,這個(gè)功能變得尤為重要贷屎。因?yàn)檫@些參與者并不希望所有的交易信息——比如提供給部分客戶的特定價(jià)格信息——都對(duì)網(wǎng)絡(luò)中所有參與者公開罢防。只有在同一個(gè)channel中的參與者,才會(huì)擁有該channel中的賬本唉侄,而其他不在此channel中的參與者則看不到這個(gè)賬本咒吐。

共享賬本

Hyperledger Fabric包含一個(gè)賬本子系統(tǒng),這個(gè)子系統(tǒng)包含兩個(gè)組件:世界狀態(tài)(world state)和交易記錄属划。在Hyperledger Fabric網(wǎng)絡(luò)中的每一個(gè)參與者都擁有一個(gè)賬本的副本恬叹。

世界狀態(tài)組件描述了賬本在特定時(shí)間點(diǎn)的狀態(tài),它是賬本的數(shù)據(jù)庫(kù)同眯。交易記錄組件記錄了產(chǎn)生世界狀態(tài)當(dāng)前值的所有交易绽昼,它是世界狀態(tài)的更新歷史。那么须蜗,賬本則是世界狀態(tài)數(shù)據(jù)庫(kù)和交易歷史記錄的集合硅确。

賬本的世界狀態(tài)存儲(chǔ)數(shù)據(jù)庫(kù)是可更換的。默認(rèn)配置下明肮,這是一個(gè)key-value存儲(chǔ)數(shù)據(jù)庫(kù)菱农。交易記錄模塊不需要被接入。只需要記錄在區(qū)塊鏈網(wǎng)絡(luò)中賬本數(shù)據(jù)庫(kù)被使用時(shí)之前和之后的值就可以了柿估。

智能合約

Hyperledger Fabric智能合約被稱為chaincode循未,當(dāng)一個(gè)區(qū)塊鏈外部的一個(gè)應(yīng)用程序需要訪問(wèn)賬本時(shí),就會(huì)調(diào)用chaincode秫舌。大多數(shù)情況下的妖,chaincode只會(huì)訪問(wèn)賬本的數(shù)據(jù)庫(kù)組件和世界狀態(tài)(world state)(比如查詢),但不會(huì)查詢交易記錄足陨。

chaincode可通過(guò)多種不同編程語(yǔ)言實(shí)現(xiàn)嫂粟。目前支持chaincode的語(yǔ)言是Go(包含對(duì)java的支持),更多的編程語(yǔ)言會(huì)在今后的版本中獲得支持钠右。

隱私

根據(jù)網(wǎng)絡(luò)的需求赋元,在一個(gè)Business-to-Business(B2B)網(wǎng)絡(luò)中的參與者會(huì)對(duì)信息共享的程度極為敏感。然而飒房,對(duì)于其他的網(wǎng)絡(luò)搁凸,隱私并不是首要考慮的因素。

Hyperledger Fabric支持構(gòu)建隱私保護(hù)嚴(yán)格的網(wǎng)絡(luò)狠毯,也支持構(gòu)建相對(duì)開放的網(wǎng)絡(luò)护糖。

共識(shí)

在網(wǎng)絡(luò)中,不同的參與者寫入的交易必須按照產(chǎn)生順序依次被寫入賬本中嚼松。要實(shí)現(xiàn)這一目標(biāo)嫡良,交易順序必須被正確的建立并且必須包含拒絕錯(cuò)誤(或者惡意)插入賬本中的無(wú)效交易的方法锰扶。

這完全是計(jì)算機(jī)科學(xué)的研究領(lǐng)域,可以有多種方法實(shí)現(xiàn)上面提到的目標(biāo)寝受,這些方法各有優(yōu)缺點(diǎn)坷牛。例如,PBFT (Practical Byzantine Fault Tolerance)可以為文件副本提供一種機(jī)制來(lái)相互通信很澄,即使是在發(fā)生腐敗的情況下京闰,也可以保證每個(gè)副本保持一致。另外甩苛,在比特幣中蹂楣,通過(guò)一種稱為挖礦的行為進(jìn)行排序。在挖礦過(guò)程中讯蒲,競(jìng)爭(zhēng)的計(jì)算機(jī)競(jìng)相解決一個(gè)密碼難題痊土,這個(gè)謎題定義了所有后續(xù)的構(gòu)建順序。

Hyperledger Fabric被設(shè)計(jì)為允許網(wǎng)絡(luò)構(gòu)建者依據(jù)業(yè)務(wù)需求來(lái)選擇采用的共識(shí)機(jī)制。好比考慮隱私性,就會(huì)有一連串的需求慎恒,從高度結(jié)構(gòu)化的網(wǎng)絡(luò)或是更加點(diǎn)對(duì)點(diǎn)的網(wǎng)絡(luò)。

更多的Hyperledger Fabric共識(shí)機(jī)制會(huì)在另一份文檔中詳細(xì)描述赞哗,這些共識(shí)機(jī)制目前包含SOLO,Kafka以及后續(xù)會(huì)添加的SBFT (Simplified Byzantine Fault Tolerance)辆雾。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末肪笋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子度迂,更是在濱河造成了極大的恐慌藤乙,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惭墓,死亡現(xiàn)場(chǎng)離奇詭異坛梁,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)腊凶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門划咐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人钧萍,你說(shuō)我怎么就攤上這事褐缠。” “怎么了风瘦?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵队魏,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我万搔,道長(zhǎng)胡桨,這世上最難降的妖魔是什么官帘? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮昧谊,結(jié)果婚禮上刽虹,老公的妹妹穿的比我還像新娘。我一直安慰自己揽浙,他們只是感情好状婶,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布意敛。 她就那樣靜靜地躺著馅巷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪草姻。 梳的紋絲不亂的頭發(fā)上钓猬,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音撩独,去河邊找鬼敞曹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛综膀,可吹牛的內(nèi)容都是我干的澳迫。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼剧劝,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼橄登!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起讥此,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤拢锹,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后萄喳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卒稳,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年他巨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了充坑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡染突,死狀恐怖捻爷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情觉痛,我是刑警寧澤役衡,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站薪棒,受9級(jí)特大地震影響手蝎,放射性物質(zhì)發(fā)生泄漏榕莺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一棵介、第九天 我趴在偏房一處隱蔽的房頂上張望钉鸯。 院中可真熱鬧,春花似錦邮辽、人聲如沸唠雕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)岩睁。三九已至,卻和暖如春揣云,著一層夾襖步出監(jiān)牢的瞬間捕儒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工邓夕, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刘莹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓焚刚,卻偏偏與公主長(zhǎng)得像点弯,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子矿咕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容