真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

超級賬本的nosql,超級賬本的共識機制

(譯)超級賬本官方文檔 基本概念(三) - 節(jié)點(Peer)

超級賬本是Linux基金會發(fā)起的項目,意在提供一套企業(yè)級區(qū)塊鏈應(yīng)用框架,便于大家開發(fā)基于區(qū)塊鏈技術(shù)的應(yīng)用。

創(chuàng)新互聯(lián)主營樂亭網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App制作,樂亭h5小程序制作搭建,樂亭網(wǎng)站營銷推廣歡迎樂亭等地區(qū)企業(yè)咨詢

Fabric的基本概念

最開始,應(yīng)用程序會選出一組peer來生成賬本更新提議。哪些peer會被選出來是依據(jù)的背書策略,這個背書策略決定了哪些組織需要在廣播賬本更新提議前對更新提議進行背書。這會影響到共識方式,任何一個關(guān)心更新提議是否背書的組織都會在廣播給peer更新提議并被peer接受前確認(rèn)提議是否有背書。

peer對一個提議響應(yīng)進行背書,就是把自己的數(shù)字簽名加入到響應(yīng)中,并用自己的私鑰對整個響應(yīng)簽名。背書內(nèi)容隨后可以被用于證明這個響應(yīng)是某個組織的peer生成的。在我們的例子中,如果peer P1屬于組織1(Org1),那么背書E1就相當(dāng)于可以證明L1上的交易T1和響應(yīng)R1是由Org1的peer P1提供的。

當(dāng)應(yīng)用程序得到了足夠多的簽名的提議響應(yīng)時,第一階段就結(jié)束了。

我們注意到peer可能返回不同的信息,因此同一筆交易可能有不一致的返回信息。這可能由于響應(yīng)是在不同時間,不同peer,在不同賬本狀態(tài)下生成的,大多數(shù)情況下應(yīng)用程序可以多次請求更新的提議響應(yīng)。另外更嚴(yán)重,但概率很小的原因是因為鏈碼的不確定性導(dǎo)致的響應(yīng)不一致。不確定性是鏈碼和賬本的大敵,如果這種情況發(fā)生了,對提議交易來說是很嚴(yán)重的,不一致的提議響應(yīng)肯定不能提交到賬本中。一個獨立的節(jié)點是不可能知道交易結(jié)果是非確定性的交易,在檢測到非確定性交易前,必須將交易匯總比較(嚴(yán)格地說,即使這還不夠,但我們將此討論推遲到交易部分,其中詳細(xì)討論了非確定性)。

在第一階段結(jié)束時,如果應(yīng)用程序希望如此的話,可以放心丟棄不一致的響應(yīng)以提前結(jié)束交易流程。后面我們會看到如果應(yīng)用程序使用不一致的響應(yīng)提交到賬本時,會被拒絕。

過程2 打包

第二個交易流程是打包。Orderer節(jié)點這個過程關(guān)鍵的點,它接收來自很多應(yīng)用傳來的背書過的提議交易響應(yīng)。Orderer對交易進行排序,并將大量的交易打包進區(qū)塊,并準(zhǔn)備將區(qū)塊分發(fā)到所有連接到Orderer的peer,包括背書peer。

orderer的第一個角色就是打包賬本更新提議。在上圖的例子中,應(yīng)用A1發(fā)送給Orderer O1一個被E1和E2背書的交易T1。同時,應(yīng)用A2發(fā)送給Orderer O1一個被E1背書的交易T2。O1將A1傳來的交易和A2傳來的交易以及其它交易共同打包進區(qū)塊B2。我們可以看到區(qū)塊B2里的交易排序是T1,T2,T3,T4,T6,T5,并不一定是按照到達(dá)orderer節(jié)點的順序(這個例子展示了一個非常簡單的orderer配置)。

Orderer節(jié)點會同時收到網(wǎng)絡(luò)Channel中不同應(yīng)用程序發(fā)送的賬本更新提議。Orderer節(jié)點的任務(wù)就是按照事先定義好的順序整理這些更新提議,并把它們打包進區(qū)塊,為下一步的分發(fā)做準(zhǔn)備。這些區(qū)塊將構(gòu)成區(qū)塊鏈。一旦Orderer節(jié)點生成了期望大小的區(qū)塊,或者超過最大等待時間,Orderer會向連接到它特定Channel的Peer發(fā)送區(qū)塊。第三個過程會詳述這個流程。

區(qū)塊中的交易排列順序和交易到達(dá)Orderer節(jié)點的順序沒有直接關(guān)系。交易在區(qū)塊中可以是任意的排列順序,這個次序就是交易執(zhí)行的順序。重點是有一個嚴(yán)格的交易排序,但具體是怎樣的排序并不重要。

區(qū)塊中的嚴(yán)格交易順序排列使得Fabric與公鏈中一筆交易可以被打包進多個不同區(qū)塊的情況不同。在Fabric中,這不可能發(fā)生,由多個Orderer生成的區(qū)塊就是最終的區(qū)塊,因為交易被寫入?yún)^(qū)塊后,交易的位置順序就確定了。這意味著Fabric不會存在分叉。一旦交易被寫入?yún)^(qū)塊,以后就不能再重寫了。

我們可以看到,peer是存儲賬本和鏈碼的,orderer完全不會存儲這些。每一筆交易到達(dá)orderer時,orderer只是機械的將交易打包進區(qū)塊,而不會理會交易的價值,額度等。這是Fabric的一個重要特性,所有交易都會按照一個嚴(yán)格的順序進行整理,沒有交易會被拋棄掉。

到第二階段結(jié)束時,我們可以了解到orderer的責(zé)任就是進行必要的,簡單的收集交易更新提議,將他們排序,打包進區(qū)塊,準(zhǔn)備分發(fā)出去。

過程3 認(rèn)證

最后一個交易工作流程是分發(fā)和驗證從orderer到peer的區(qū)塊,如果驗證成功,將會被提交到賬本中。

特別的,在每個peer中,在區(qū)塊中的每一筆交易在更新到賬本之前都是驗證過的,以保證所有交易都是由相關(guān)的組織背書過的。失敗的交易會保留,作為日后審查用,并不會更新到賬本中。

Orderer除了在過程2中的打包角色外,在過程3中還負(fù)責(zé)分發(fā)區(qū)塊到peer節(jié)點。在這個例子中,O1分發(fā)區(qū)塊到P1和P2。P1處理區(qū)塊2,然后將區(qū)塊2添加到P1的賬本L1中。同時,P2處理區(qū)塊2,然后將區(qū)塊2添加到P2的賬本L1中。一旦操作完成,賬本L1在P1和P2中都被更新了,每個Peer都可以向連接到他們的應(yīng)用程序發(fā)送處理結(jié)果。

Orderer向連接到他的Peer分發(fā)區(qū)塊是過程3的開始。連接到orderer節(jié)點的某個渠道的peer,會收到orderer生成的新區(qū)塊的一份拷貝。每個peer節(jié)點都會獨立的處理收到的區(qū)塊,但所有peer處理區(qū)塊的方式都是相同的。采用這種方式,不同peer中的賬本可以達(dá)成共識。并不是所有的peer都必須連接到orderer節(jié)點,peer和peer之間可以通過gossip協(xié)議來傳遞區(qū)塊,這樣peer也可以獨立的處理相同區(qū)塊。

收到一個區(qū)塊后,peer會按照交易在區(qū)塊中出現(xiàn)的順序依次處理。對于每一筆交易,peer會按照生成這筆交易的鏈碼背書策略檢查交易是否被與之相關(guān)組織的背書。例如,某些交易可能只需要一個組織背書,而另一些交易需要多個組織同時背書才有效。這個驗證過程驗證了所有相關(guān)組織產(chǎn)生的結(jié)果或者輸出是否一致。同時請注意,第三階段的驗證和第一階段不同,階段一只是應(yīng)用程序收到背書節(jié)點的響應(yīng),判斷是否需要發(fā)送交易提議。如果應(yīng)用程序發(fā)送錯誤的交易,違反了背書策略,在第三階段的驗證過程中peer還是可以拒絕本次交易。

如果交易背書正確,peer將嘗試把交易提交到賬本中。為了能寫賬本,peer必須進行賬本一致性檢查,保證當(dāng)前賬本的狀態(tài)與賬本更新后的狀態(tài)一致。這個狀態(tài)并不總會是一致的,即使交易擁有完整的背書。舉個栗子,另外一筆交易可能已經(jīng)更新了賬本中的同一個資產(chǎn),以至于我們正要更新的交易將永遠(yuǎn)不會被寫入賬本。這樣的話,每個節(jié)點中的賬本必須通過網(wǎng)絡(luò)保持共識,每個節(jié)點的驗證方式是一樣的。

在peer驗證完每筆獨立交易后,將更新賬本。失敗的交易會保存下來作為審查資料。這意味著peer中的區(qū)塊和從orderer中收到的區(qū)塊一致,除了區(qū)塊中指示交易成功或失敗的標(biāo)志。

我們也要注意到,第三階段并沒有執(zhí)行鏈碼,這一步只會在第一階段完成,這很重要。這意味著鏈碼只在背書節(jié)點可用,而不是整個網(wǎng)絡(luò)中都可用,這保證了鏈碼在背書組織中的安全及私密。這和收到鏈碼的執(zhí)行結(jié)果不同,執(zhí)行結(jié)果會分享到所有在Channel里的peer,不論他是否能背書交易。背書節(jié)點的這種設(shè)計方式是為了方便擴展。

最后,每次區(qū)塊被提交到peer的賬本中時,這個peer會生成對應(yīng)的事件。區(qū)塊事件包含區(qū)塊的所有內(nèi)容,而區(qū)塊交易事件只包含簡要信息,比如每筆區(qū)塊中的交易是否有效。由鏈碼的執(zhí)行而產(chǎn)生的鏈碼事件也可以在這個時候發(fā)布。應(yīng)用程序可以注冊這些事件,當(dāng)這些事件發(fā)生時,可以收到通知。這些通知在交易工作流程的第三階段和最后階段完成。

總的來說,我們可以知道第三階段由orderer產(chǎn)生的區(qū)塊被不斷地同步到賬本中。區(qū)塊中交易的嚴(yán)格排序能讓每個peer在區(qū)塊鏈網(wǎng)絡(luò)中始終如一地驗證交易并提交到賬本中。

Orderer和共識

整個交易工作流程被稱為共識,因為所有peer都認(rèn)同交易的排序和內(nèi)容,在執(zhí)行過程中由orderer節(jié)點來協(xié)調(diào)。共識是多步驟的過程,應(yīng)用程序只會在共識過程結(jié)束時收到通知,但通知的時間在不同的peer上可能不同。

我們將會在后面更多的探討orderer,現(xiàn)在,把orderer僅僅當(dāng)做從應(yīng)用程序收集、分發(fā)賬本更新提議到peer,由peer進行驗證及更新賬本的過程。

什么是超級賬本?

超級賬本(hyperledger)是Linux基金會于2015年發(fā)起的推進區(qū)塊鏈數(shù)字技術(shù)和交易驗證的開源項目。通過創(chuàng)建通用的分布式賬本技術(shù),協(xié)助組織擴展、建立行業(yè)專屬應(yīng)用程序、平臺和硬件系統(tǒng)來支持成員各自的交易業(yè)務(wù)。

超級賬本之——Fabric

目前超級賬本下面有5個并行的項目,F(xiàn)abric屬于其中較為成熟的一個。這個項目由,來自28個不同組織的159名工程師參與開發(fā)。

在Fabric的區(qū)塊鏈網(wǎng)絡(luò)中,有四類節(jié)點:MSP,Ordering Node,Endorsing Peer,Commtting Peer

MSP(Membership Service Provider), 這類節(jié)點主管區(qū)塊鏈網(wǎng)絡(luò)中其他的節(jié)點的授權(quán),準(zhǔn)入,踢除。通過給不同節(jié)點頒發(fā)證書的方式,授予不同類型的節(jié)點相應(yīng)的權(quán)限。

中文可以稱作排序節(jié)點。通常在一個網(wǎng)絡(luò)中至少有一個或多個排序節(jié)點,這類節(jié)點負(fù)責(zé) 按照指定的算法,將交易進行排序,并返回給Committing Peer。其并不關(guān)心具體的交易細(xì)節(jié)。

這類節(jié)點的主要負(fù)責(zé)接收交易請求,驗證這筆交易之后,并做一些預(yù)處理之后,并將簽名后的數(shù)據(jù)傳回給客戶端。

這類節(jié)點做是區(qū)塊鏈網(wǎng)絡(luò)中的全節(jié)點,它們需要記錄完整的區(qū)塊信息,并且驗證每筆交易的正確性,是最終將交易打包進區(qū)塊鏈的節(jié)點。

結(jié)合下面這種圖,看看一筆交易的上鏈過程:

1,首先從客戶端發(fā)起一筆交易提交到Endorsing Peer,進行預(yù)處理。

2,預(yù)處理通過之后,將簽名數(shù)據(jù),傳回給客戶端。

3,客戶端發(fā)起請求,將收到的簽名數(shù)據(jù)傳給Ordering Node。

4,Ordering Node對交易進行排序,然后傳給Committing Peer。

5,Committing Peer這里將排序好的交易進行驗證,并打包,通過指定的共識算法達(dá)成一致,形成新的區(qū)塊。

6,最后將交易結(jié)果返回給客戶端。

6,中間過程的每一步,都伴隨著權(quán)限的驗證。會根據(jù)MSP頒發(fā)的證書,進行判斷。

區(qū)塊鏈中超級賬本是什么?

超級賬本(hyperledger)是Linux基金會于2015年發(fā)起的推進區(qū)塊鏈數(shù)字技術(shù)和交易驗證的開源項目,30家初始企業(yè)成員(包括IBM、Accenture、Intel、J.P.Morgan、R3、DAH、DTCC、FUJITSU、HITACHI、SWIFT、Cisco等)。目標(biāo)是讓成員共同合作,共建開放平臺,滿足來自多個不同行業(yè)各種用戶案例,并簡化業(yè)務(wù)流程。

hyperledger

當(dāng)下是區(qū)塊鏈快速發(fā)展的時代,各行各業(yè)包括醫(yī)療、文化、物聯(lián)網(wǎng)等等,都在尋求利用區(qū)塊鏈技術(shù)解決各自的行業(yè)痛點。要支持各種行業(yè)的應(yīng)用,就意味著區(qū)塊鏈應(yīng)該具有企業(yè)級屬性,保密性和吞吐量都是要考慮的問題。

超級賬本在區(qū)塊鏈中的位置:

- 比特幣- 代表數(shù)字貨幣、區(qū)塊鏈思想的誕生,提供了區(qū)塊鏈技術(shù)應(yīng)用的原型

- 以太坊- 掙脫數(shù)字貨幣的枷鎖,智能合約的誕生,延伸了區(qū)塊鏈技術(shù)的功能

- 超級賬本- 進一步引入權(quán)限控制和安全保障,首次將區(qū)塊鏈技術(shù)引入到分布式聯(lián)盟賬本的應(yīng)用場景。

鏈喬教育在線旗下學(xué)碩創(chuàng)新區(qū)塊鏈技術(shù)工作站是中國教育部學(xué)校規(guī)劃建設(shè)發(fā)展中心開展的“智慧學(xué)習(xí)工場2020-學(xué)碩創(chuàng)新工作站 ”唯一獲準(zhǔn)的“區(qū)塊鏈技術(shù)專業(yè)”試點工作站。專業(yè)站立足為學(xué)生提供多樣化成長路徑,推進專業(yè)學(xué)位研究生產(chǎn)學(xué)研結(jié)合培養(yǎng)模式改革,構(gòu)建應(yīng)用型、復(fù)合型人才培養(yǎng)體系。

超級賬本Fabric 2.0版本正式發(fā)布,重要更新都在這了

1月31日消息,超級賬本(Hyperledger)聯(lián)盟正式發(fā)布了其企業(yè)分布式賬本(DLT)平臺Hyperledger Fabric的2.0版,據(jù)悉,該版本增加了幾個主要功能,改進了不同參與者之間的交流方式。

Hyperledger Fabric是超級賬本聯(lián)盟的主要項目之一,其作為一個私有或“許可”型區(qū)塊鏈網(wǎng)絡(luò),目前它主要被用于金融和供應(yīng)鏈等行業(yè)。至今,F(xiàn)abric已獲得了阿里巴巴、AWS、Azure、百度、谷歌、華為、IBM、甲骨文、騰訊等互聯(lián)網(wǎng)巨頭的支持。

而2.0版本的Fabric,則迎來了以下這些改進:

對于Fabric 2.0版本的正式發(fā)布,超級賬本聯(lián)盟成員們紛紛發(fā)表了自己的看法,比如:

據(jù)悉,F(xiàn)abric的智能合約可以有多種架構(gòu),它可以用主流語言編程,例如Go、Java和Javascript,此外也可以使用Solidity。

而作為一個面向企業(yè)的產(chǎn)品,F(xiàn)abric的特點是異步升級,這類似于主流軟件的工作方式。

特別聲明

原文:

編譯:隔夜的粥

稿源(譯):巴比特資訊()

免責(zé)聲明:本文不代表巴比特立場,且不構(gòu)成投資建議,請謹(jǐn)慎對待。


網(wǎng)頁名稱:超級賬本的nosql,超級賬本的共識機制
當(dāng)前鏈接:http://weahome.cn/article/hosggg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部