① 區塊鏈聯盟鏈有哪些
中國合法的區塊鏈有哪些1、以聯盟鏈為主的區塊鏈技術服務的公司,基本都是符合法律規定的。主要包括有騰訊區塊鏈、網路超級鏈、京東區塊鏈、螞蟻區塊鏈、上海萬向區塊鏈股份公司、杭州趣鏈科技有限公司等等。
2、以區塊鏈信息服務為主的公司,比如區塊鏈資訊、區塊鏈社區、數字貨幣行情軟體等。主要包括巴比特、鏈節點、非小號等。
3、以礦機生產及提供相關算力服務的公司,比如比特大陸、嘉楠耘智、億邦國際等等。
拓展資料:
市凈率:指的是每股股價與每股凈資產的比率。市凈率可用於投資分析,一般來說市凈率較低的股票,投資價值較高,相反,則投資價值較低。
開盤價:上午9:15—9:25為集合競價時間,在集合競價期間內,交易所的自動撮合系統只儲存而不撮合,當申報競價時間一結束,撮合系統將根據集合競價原則,產生該股票的當日開盤價。按上海證券交易所規定,如開市後半小時內某證券無成交,則以前一天的收盤價為當日開盤價。有時某證券連續幾天無成交,則由證券交易所根據客戶對該證券買賣委託的價格走勢,提出指導價格,促使其成交後作為開盤價。首日上市買賣的證券經上市前一日櫃台轉讓平均價或平均發售價為開盤價。
收盤:收盤價是指某種證券在證券交易所一天交易活動結束前最後一筆交易的成交價格。如當日沒有成交,則採用最後一次的成交價格作為收盤價,因為收盤價是當日行情的標准,又是下一個交易日開盤價的依據,可據以預測未來證券市場行情;所以投資者對行情分析時,一般採用收盤價作為計算依據。
盤檔:是指投資者不積極買賣,多採取觀望態度,使當天股價的變動幅度很小,這種情況稱為盤檔。
整理:是指股價經過一段急劇上漲或下跌後,開始小幅度波動,進入穩定變動階段,這種現象稱為整理,整理是下一次大變動的准備階段。盤堅股價緩慢上漲,稱為盤堅。盤軟股價緩慢下跌,稱為盤軟。回檔是指股價上升過程中,因上漲過速而暫時回跌的現象。成交筆數是指當天各種股票交易的次數。成交額是指當天每種股票成交的價格總額。最後喊進價是指當天收盤後,買者欲買進的價格。最後喊出價是指當天收盤後,賣者的要價。
區塊鏈之聯盟鏈(三)認識Fabric
Fabric是超級賬本聯盟推出的核心區塊鏈框架,它適合在復雜的企業內和企業間搭建聯盟鏈。根據超級賬本聯盟的目標,Fabric被建設為一個模塊化的、支持可插拔組件的基礎聯盟鏈框架。;
與以太坊系的Quorum不同,Fabric從一開始就只考慮企業間的應用。其獨有的channel概念,將企業根據業務目的不同以不同的子網連接起來,每一個子網對應一個channel,而每個channel有自己獨立的區塊鏈。而Quorum很顯然是只有一個公網(所有企業節點都加入進去),企業與企業間的私有業務是通過PrivateManager完成的。
理解channel的最簡單方法就是,將它類比為一個消息服務提供的Topic,實際上Fabic最早就是基於Kafka?的分布式消息服務來實現。
????在Fabric網路中,一個企業可以有一個或多個節點加入整個聯盟鏈;一個企業可以加入1個或者多個Channel(子網);?一個節點可以加入1個或者多個channel。每個channel構成一個子網,所以Fabric是一種由子網組成的網路。
那麼Fabric是怎麼實現智能合約的執行和完成業務上鏈(將事務結果記錄在區塊鏈里)的呢?
與其它框架不同,Fabric將整個過程分成了三個階段:
業務背書階段:客戶的請求發送的背書節點,通過智能合約完成業務的計算(但不更新狀態),並完成背書;將背書結果返回個客戶端。
業務的排序階段:客戶端將背書結果通過Channel被發送到排序節點(orderer),在排序節點完成事務的排序,並打包到block里,最後下發給所有連接到channel的節點。
業務驗證並寫入賬本階段:通過Gossip網路,所有Channel的節點都會接收到新的block,節點會驗證block中的每一個事務,確定是否有效:有效地將會跟新worldstate,無效的將會標志為「無效」,不會更新Worldstate,但整個block會被完整的加入到帳本中(包括無效的事務)。
根據以上的描述,Fabric節點實際可以分為?,普通節點和Order節點:
?Peer,普通節點,完成背書(包括只能合約的執行)和驗證.
orderer,?排序節點,完成排序。
加入orderer節點的Fabric網路可以被描述如下:
每一個Channel,都定義了所有屬於channel的節點,但是並不需要所有節點都連接到Orderer節點(節點間可以通過gossip協議通訊來傳播私有數據或事務).
????在區塊鏈中,共識是區塊鏈的基礎。與公有鏈不同,聯盟鏈的共識要求所有加入賬本的事務是確定的、最終的,也就是不可以有分叉,區塊與區塊間的順序是一定的,只存在唯一條鏈。在Fabric中,這個客觀需求正是由排序實現的,所有的事務將被提交給orderer節點獲得確定的順序,並最終打包成block進入帳本。Fabric從1.4.1開始支持基於Raft實現排序服務,?可以認為基於Raft實現共識。
基於RAFT的排序服務相對於早期的Kafka具有更好的分布性,配置更加簡單,是聯盟鏈里常用的一個常用的達成共識的演算法,Quorum就默認使用RAFT作為共識層。簡單的說,RAFT是一個leader和follower的模式,所有加入RAFT網路的節點,任意時候都有一個leader,?只有這個leader有權決定事務的順序,並打包成Block,其它節點只能作為follower提交事務和同步block。
基於FAFT網路,每個企業可以有一個或多個節點參與到Orderer中去。在Frabric中企業間的網路連接可以變化成如下形式:
????區塊鏈的使用用戶在乙太網中被稱作EOA(ExternalofAccount),EOA的載體是錢包。我們沿用這個概念,來看看Fabric是如何實現用戶和發起事務的。Fabric中EOA是一個CA中心發布的certificate(x.509),一個Certificate代表一個Identity(這與以太坊還是有很大區別的,以太坊中一個EOA其實是一個hash地址),EOA能夠參與的channel以及被授權的操作是有channel的MSP(MembershipService?Provider)決定的(如下圖)。
註:certificate是一種密碼學上驗證身份的通用做法;certificate包含了個人的信息,公鑰以及發布這個certificate的CA的簽名。驗證方只需要擁有這個CA的證書(包含CA的公鑰),就可以驗證這個簽名是否正確,certificate的內容是否有篡改。簡單的說,通過CA和Certificate,我們可以獲得一個可驗證的的身份和信任鏈。
???如上圖,fabric中通要使用Wallet作為EOA的載體,一個Wallet中可以包含多個Identity(x.509certificate)。Identity通過CA提供的信任鏈來驗證正確性。
?驗證了身份之後,Fabric通過MSP在區塊鏈網路中解決該身份是否代表組織的成員和在組織內具有什麼角色。例如,channel首先會驗證當前用戶Identity是否是有效地身份,然後通過MSP查看其所處的企業和具有的角色,最終確定該用戶是否有權執行操作。
可以說,Fabric的訪問控制是通過MSP來完成的。在每一個需要訪問控制的地方都需要定義一個MSP。?例如,每個channel都定義一個MSP,這個MSP規定了在channel范圍內資源的訪問許可權。MSP是Fabric里一個晦澀難懂的概念,也是其賦予企業間安全訪問的基礎。
前文提到,Fabric將業務處理和上網分成了三個部分,背書,排序,驗證後加入賬本。
其中背書是Fabric執行智能合約的階段。以太坊中,智能合約是在EVM中執行的,有多種語言支持。在Fabric,智能合約被稱為chaincode:一個chaincode可以理解為是智能合約的容器,可以包含一個或多個智能合約,不用於EVM,chaincode是在JVM或NodeJS中執行。
客戶應用程序通過智能合約來訪問賬本,每一個可訪問的智能合約都被安裝在客戶端可以訪問的節點上,並被定義在channel里。(有隻能合約的節點被稱為背書節點,沒有隻能合約的節點被稱未提交節點,提交節點只維護賬本)
客戶應用提交一個交易請求,請求到達背書節點,背書節點首先會驗證客戶的簽名,確保客戶的身份有權執行本次交易,接著執行交易提及的智能合約(chaincode),並生成一個背書響應(或者叫做交易提案,tran-proposal)。這個背書響應中通常包含Worldstate的讀集合,寫集合,以及節點對本次交易的簽名。這里與以太坊系聯盟鏈最主要的不同是:背書階段只模擬交易,並不真正更新交易結果。而真正更新交易在第三階段完成。背書節點最後將生成的背書響應fanhui給客戶端,智能合約部分的執行就結束了。
通常一個交易的執行需要多方的簽名,所以客戶端需要將一個交易發送給多個背書節點,這些背書節點的選擇需要滿足背書策略的要求。
下圖是一個包含有客戶、背書節點,提交節點的網路示意圖。
根據Fabric官方的參考文檔,客戶交易的正果過程可使用下圖描述。
如上圖,從1到3,為背書階段,4為排序階段,4.1,4,2,5為驗證提交階段。參考Frabic的節點概念,可以了解更多在交易細節的概念。??
總的來看,Fabric更專注於企業間,通過上文,可以讓大家對Fabric的基本構成與概念有一個總的了解。?Fabric本身並不神秘,都是使用的現有的企業間的技術。要更好的了解,建議參考閱讀分布式消息系統和企業的安全基礎設施(CA相關)的支持。與以太坊系聯盟鏈實現比較,?Fabric的子網更概念對於復雜企業間應用適應更強,但是其復雜的安全考量,使得運營成本很高,另外,Fabric使用Certificate做為用戶身份,有很大的局限性,在新的2.0里,Fabric對於此處將有所改變。
下一篇,我們將來看看Sawtooth?,由Inter提供的區塊鏈框架。
區塊鏈之聯盟鏈(一)認識以太坊
區塊鏈之聯盟鏈(二)認識Quotum
區塊鏈之聯盟鏈(三)認識Fabric
區塊鏈之聯盟鏈(四)認識Sawtooth
根據網路劃分區塊鏈的分類包括法律分析:根據網路范圍劃分區塊鏈的分類包括公有鏈、聯盟鏈、私有鏈,具體如下:
1、公有鏈:主要是指部署在互聯網范圍之內,沒有特別的一個許可權的一個設置,也沒有其他的一些什麼登陸上的一些條件,任何人都可以直接下載節點來使用,任何人也可以直接通過一個客戶端來連接一個節點,是沒有什麼限制的,其中的數據,也能夠被任意的訪問;
2、聯盟鏈:也就是由若干個節點成員來組成的一個聯盟網路,這種類型,主要是使用在商業環境之下,比如說多個商家之間,政府的政務,銀行,稅務等,他們可以共同組成一個聯盟,為某一個具體的場景服務,比如說像企業跟他的客戶之間,供應商之間等等可以形成一個聯盟網路,聯盟鏈相對於公有鏈來講,它一般是有一個身份鑒權的,並不是所有人都可以直接來聯入聯盟鏈這個網路的,它有一個身份鑒權,同時對於數據也有一些更多的保護;
3、私有鏈:更多的是在企業的內部,比如一個集團企業,它的各個部門之間,它的子公司之間,從這個角度來說,這三種,它們的一個主要的區分在於針對不同的應用場景,針對一個網路的分布范圍所形成的一個網路部署的差別,它是一個靈活的概念,這三者之間是根據不同的網路范圍,根據應用場景的一個劃分,並不是一個嚴格意義上的界定。
法律依據:《中華人民共和國網路安全法》
第一條為了保障網路安全,維護網路空間主權和國家安全、社會公共利益,保護公民、法人和其他組織的合法權益,促進經濟社會信息化健康發展,制定本法。
第二條在中華人民共和國境內建設、運營、維護和使用網路,以及網路安全的監督管理,適用本法。
② (譯)超級賬本官方文檔 基本概念(三) - 節點(Peer)
超級賬本是Linux基金會發起的項目,意在提供一套企業級區塊鏈應用框架,便於大家開發基於區塊鏈技術的應用。
Fabric的基本概念
最開始,應用程序會選出一組peer來生成賬本更新提議。哪些peer會被選出來是依據的背書策略,這個背書策略決定了哪些組織需要在廣播賬本更新提議前對更新提議進行背書。這會影響到共識方式,任何一個關心更新提議是否背書的組織都會在廣播給peer更新提議並被peer接受前確認提議是否有背書。
peer對一個提議響應進行背書,就是把自己的數字簽名加入到響應中,並用自己的私鑰對整個響應簽名。背書內容隨後可以被用於證明這個響應是某個組織的peer生成的。在我們的例子中,如果peer P1屬於組織1(Org1),那麼背書E1就相當於可以證明L1上的交易T1和響應R1是由Org1的peer P1提供的。
當應用程序得到了足夠多的簽名的提議響應時,第一階段就結束了。
我們注意到peer可能返回不同的信息,因此同一筆交易可能有不一致的返回信息。這可能由於響應是在不同時間,不同peer,在不同賬本狀態下生成的,大多數情況下應用程序可以多次請求更新的提議響應。另外更嚴重,但概率很小的原因是因為鏈碼的不確定性導致的響應不一致。不確定性是鏈碼和賬本的大敵,如果這種情況發生了,對提議交易來說是很嚴重的,不一致的提議響應肯定不能提交到賬本中。一個獨立的節點是不可能知道交易結果是非確定性的交易,在檢測到非確定性交易前,必須將交易匯總比較(嚴格地說,即使這還不夠,但我們將此討論推遲到交易部分,其中詳細討論了非確定性)。
在第一階段結束時,如果應用程序希望如此的話,可以放心丟棄不一致的響應以提前結束交易流程。後面我們會看到如果應用程序使用不一致的響應提交到賬本時,會被拒絕。
過程2 打包
第二個交易流程是打包。Orderer節點這個過程關鍵的點,它接收來自很多應用傳來的背書過的提議交易響應。Orderer對交易進行排序,並將大量的交易打包進區塊,並准備將區塊分發到所有連接到Orderer的peer,包括背書peer。
orderer的第一個角色就是打包賬本更新提議。在上圖的例子中,應用A1發送給Orderer O1一個被E1和E2背書的交易T1。同時,應用A2發送給Orderer O1一個被E1背書的交易T2。O1將A1傳來的交易和A2傳來的交易以及其它交易共同打包進區塊B2。我們可以看到區塊B2里的交易排序是T1,T2,T3,T4,T6,T5,並不一定是按照到達orderer節點的順序(這個例子展示了一個非常簡單的orderer配置)。
Orderer節點會同時收到網路Channel中不同應用程序發送的賬本更新提議。Orderer節點的任務就是按照事先定義好的順序整理這些更新提議,並把它們打包進區塊,為下一步的分發做准備。這些區塊將構成區塊鏈。一旦Orderer節點生成了期望大小的區塊,或者超過最大等待時間,Orderer會向連接到它特定Channel的Peer發送區塊。第三個過程會詳述這個流程。
區塊中的交易排列順序和交易到達Orderer節點的順序沒有直接關系。交易在區塊中可以是任意的排列順序,這個次序就是交易執行的順序。重點是有一個嚴格的交易排序,但具體是怎樣的排序並不重要。
區塊中的嚴格交易順序排列使得Fabric與公鏈中一筆交易可以被打包進多個不同區塊的情況不同。在Fabric中,這不可能發生,由多個Orderer生成的區塊就是最終的區塊,因為交易被寫入區塊後,交易的位置順序就確定了。這意味著Fabric不會存在分叉。一旦交易被寫入區塊,以後就不能再重寫了。
我們可以看到,peer是存儲賬本和鏈碼的,orderer完全不會存儲這些。每一筆交易到達orderer時,orderer只是機械的將交易打包進區塊,而不會理會交易的價值,額度等。這是Fabric的一個重要特性,所有交易都會按照一個嚴格的順序進行整理,沒有交易會被拋棄掉。
到第二階段結束時,我們可以了解到orderer的責任就是進行必要的,簡單的收集交易更新提議,將他們排序,打包進區塊,准備分發出去。
過程3 認證
最後一個交易工作流程是分發和驗證從orderer到peer的區塊,如果驗證成功,將會被提交到賬本中。
特別的,在每個peer中,在區塊中的每一筆交易在更新到賬本之前都是驗證過的,以保證所有交易都是由相關的組織背書過的。失敗的交易會保留,作為日後審查用,並不會更新到賬本中。
Orderer除了在過程2中的打包角色外,在過程3中還負責分發區塊到peer節點。在這個例子中,O1分發區塊到P1和P2。P1處理區塊2,然後將區塊2添加到P1的賬本L1中。同時,P2處理區塊2,然後將區塊2添加到P2的賬本L1中。一旦操作完成,賬本L1在P1和P2中都被更新了,每個Peer都可以向連接到他們的應用程序發送處理結果。
Orderer向連接到他的Peer分發區塊是過程3的開始。連接到orderer節點的某個渠道的peer,會收到orderer生成的新區塊的一份拷貝。每個peer節點都會獨立的處理收到的區塊,但所有peer處理區塊的方式都是相同的。採用這種方式,不同peer中的賬本可以達成共識。並不是所有的peer都必須連接到orderer節點,peer和peer之間可以通過gossip協議來傳遞區塊,這樣peer也可以獨立的處理相同區塊。
收到一個區塊後,peer會按照交易在區塊中出現的順序依次處理。對於每一筆交易,peer會按照生成這筆交易的鏈碼背書策略檢查交易是否被與之相關組織的背書。例如,某些交易可能只需要一個組織背書,而另一些交易需要多個組織同時背書才有效。這個驗證過程驗證了所有相關組織產生的結果或者輸出是否一致。同時請注意,第三階段的驗證和第一階段不同,階段一隻是應用程序收到背書節點的響應,判斷是否需要發送交易提議。如果應用程序發送錯誤的交易,違反了背書策略,在第三階段的驗證過程中peer還是可以拒絕本次交易。
如果交易背書正確,peer將嘗試把交易提交到賬本中。為了能寫賬本,peer必須進行賬本一致性檢查,保證當前賬本的狀態與賬本更新後的狀態一致。這個狀態並不總會是一致的,即使交易擁有完整的背書。舉個栗子,另外一筆交易可能已經更新了賬本中的同一個資產,以至於我們正要更新的交易將永遠不會被寫入賬本。這樣的話,每個節點中的賬本必須通過網路保持共識,每個節點的驗證方式是一樣的。
在peer驗證完每筆獨立交易後,將更新賬本。失敗的交易會保存下來作為審查資料。這意味著peer中的區塊和從orderer中收到的區塊一致,除了區塊中指示交易成功或失敗的標志。
我們也要注意到,第三階段並沒有執行鏈碼,這一步只會在第一階段完成,這很重要。這意味著鏈碼只在背書節點可用,而不是整個網路中都可用,這保證了鏈碼在背書組織中的安全及私密。這和收到鏈碼的執行結果不同,執行結果會分享到所有在Channel里的peer,不論他是否能背書交易。背書節點的這種設計方式是為了方便擴展。
最後,每次區塊被提交到peer的賬本中時,這個peer會生成對應的事件。區塊事件包含區塊的所有內容,而區塊交易事件只包含簡要信息,比如每筆區塊中的交易是否有效。由鏈碼的執行而產生的鏈碼事件也可以在這個時候發布。應用程序可以注冊這些事件,當這些事件發生時,可以收到通知。這些通知在交易工作流程的第三階段和最後階段完成。
總的來說,我們可以知道第三階段由orderer產生的區塊被不斷地同步到賬本中。區塊中交易的嚴格排序能讓每個peer在區塊鏈網路中始終如一地驗證交易並提交到賬本中。
Orderer和共識
整個交易工作流程被稱為共識,因為所有peer都認同交易的排序和內容,在執行過程中由orderer節點來協調。共識是多步驟的過程,應用程序只會在共識過程結束時收到通知,但通知的時間在不同的peer上可能不同。
我們將會在後面更多的探討orderer,現在,把orderer僅僅當做從應用程序收集、分發賬本更新提議到peer,由peer進行驗證及更新賬本的過程。
③ 淺析 Fabric Peer 節點
Hyperledger Fabric,也稱之為超級賬本,是由 IBM 發起,後成為 Linux 基金會 Hyperledger 中的區塊鏈項目之一。
Fabric 是一個提供分布式賬本解決方案的平台,底層的賬本數據存儲使用了區塊鏈。區塊鏈平台通常可以分為公有鏈、聯盟鏈和私有鏈。公有鏈典型的代表是比特幣這些公開的區塊鏈網路,誰都可以加入到這個網路中。聯盟鏈則有準入機制,無法隨意加入到網路中,聯盟鏈的典型例子就是 Fabric。
Fabric 不需要發幣來激勵參與方,也不需要挖礦來防止有人作惡,所以 Fabric 有著更好的性能。在Fabric 網路中,也有著諸多不同類型的節點來組成網路。其中 Peer 節點承載著賬本和智能合約,是整個區塊鏈網路的基礎。在這篇文章中,會詳細分析 Peer 的結構及其運行方式。
在本文中,假設讀者已經了解區塊鏈、智能合約等概念。
本文基於 Fabric1.4 LTS。
區塊鏈網路是一個分布式的網路,Fabric 也是如此,由於 Fabric 是聯盟鏈,需要准入機制,所以在網路結構上會復雜很多,下面是一個簡化的 Fabric 網路:
各個元素的含義如下:
對於 Fabric 網路,外部的用戶需要通過客戶端應用,也就是圖中的 A1、A2 或者 A3 來訪問網路,客戶端應用需要通過 CA 證書表明自己的身份,這樣才能訪問到 Fabric 網路中有許可權訪問的部分。
在上面的網路中,共有四個組織,R1、R2、R3 和 R4。其中 R4 是整個 Fabric 網路的創建者,網路是根據 NC4 配置的。
在 Fabric 網路中,不同的組織可以組成聯盟,不同的聯盟之間數據通過 Channel 來隔離。Channel 中的數據只有該聯盟中的組織才能訪問,每一個新的 Channel 都可以認為是一條新的鏈。與其他的區塊鏈網路中通常只有一條鏈不一樣,Fabric 可以通過 Channel 在網路中快速的搭建出一個新的區塊鏈。
上面 R1 和 R2 組成了一個聯盟,在 C1 上交易。R2 同時又和 R3 組成了另外一個聯盟,在 C2 上交易。R1 和 R2 在 C1 上交易時,對 R3 是不可見的,R2 和 R3 在 C2 上交易時,對 R1 是不可見的。Channel 機制提供了很好的隱私保護能力。
Orderer 節點是整個 Fabric 網路共有的,用來為所有的交易排序、打包。比如上面網路中 O4 節點。本文不會對 Orderer 節點進行詳細說明,可以把這個功能理解為比特幣網路中的挖礦過程。
Peer 節點表示網路中的節點,通常一個 Peer 就表示一個組織,Peer 是整個區塊鏈網路的基礎,是智能合約和賬本的載體,Peer 也是本文討論的重點。
一個 Peer 節點可以承載多套賬本和智能合約,比如 P2 節點,既維護了 C1 的賬本和智能合約,也維護了 C2 的賬本和智能合約。
為了可以更深入了解 Peer 節點的作用,先了解一下 Fabric 整體的交易流程。整體的交易流程圖如下:
Peer 節點按照功能來分可以分為 背書節點 和 記賬節點 。
客戶端會提交交易請求到背書節點,背書節點開始模擬執行交易,在模擬執行之後,背書節點並不會去更新賬本數據,而是把這個交易進行加密和簽名,然後返回給客戶端。
客戶端收到這個響應之後就會把響應提交到 Orderer 節點,Orderer 節點會對這些交易進行排序,並打包成區塊,然後分發到記賬節點,記賬節點就會對交易進行驗證,驗證結束之後,就會把交易記錄到賬本裡面。
一筆交易是否能成功是根據背書策略來指定的,每一個智能合約都會指定一個背書策略。
Peer 節點代表著聯盟鏈中的各個組織,區塊鏈網路也是由 Peer 節點來組成的,而且也是賬本和智能合約的載體。
通過對上面交易過程的了解可以知道,Peer 節點是主要的參與方。如果用戶想要訪問賬本資源,都必須要和 peer 節點進行交互。在一個 Peer 節點中,可以同時維護多個賬本,這些賬本屬於不同的 Channel 。每個 Peer 節點都會維護一套冗餘賬本,這樣就避免了單點故障。
Peer 節點根據在交易中的不同角色,可以分成背書節點(Endorser)和記賬節點(Committer),背書節點會對交易進行模擬執行,記賬節點才會真正將數據存儲到賬本中。
賬本可以分成兩個部分,一部分是區塊鏈,另一部分是 Current State,也被稱之為 World State。
區塊鏈上只能追加,不能對過去的數據進行修改,鏈上也包含兩部分信息,一部分是通道的配置信息,另一部分是不可修改,序列化的記錄。每一個區塊記錄前一個區塊的信息,然後連成鏈,如下圖所示:
第一個區塊被稱之為 genesis block,其中不存儲交易信息。每個區塊可以被分為 區塊頭 、 區塊數據 和 區塊元數據 。區塊頭中存儲著當前區塊的區塊號、當前區塊的 hash 值和上一個區塊的 hash 值,這樣才能把所有的區塊連接起來。區塊數據中包含了交易數據。區塊元數據中則包括了區塊寫入的時間、寫入人及簽名。
其中每一筆交易的結構如下,在 Header 中,包含了 ChainCode 的名稱、版本信息。Signature 就是交易發起用戶的簽名。Proposal 中主要是一些參數。Response 中是智能合約執行的結果。Endorsements 中是背書結果返回的結果。
WorldState中維護了賬本的當前狀態,數據以 Key-Value 的形式存儲,可以快速查詢和修改,每一次對 WorldState 的修改都會被記錄到區塊鏈中。WorldState 中的數據需要依賴外部的存儲,通常使用 LevelDB 或者 CouchDB。
區塊鏈和 WorldState 組成了一個完整的賬本,World State 保證的業務數據的靈活變化,而區塊鏈則保證了所有的修改是可追溯和不可篡改的。
在交易完成之後,數據已經寫入賬本,就需要將這些數據同步到其他的 Peer,Fabric 中使用的是 Gossip 協議。Gossip 也是 Channel 隔離的,只會在 Channel 中的 Peer 中廣播和同步賬本數據。
智能合約需要安裝到 Peer 節點上,智能合約是訪問賬本的唯一方式。智能合約可以通過 Go、Java 等變成語言進行編寫。
智能合約編寫完成之後,需要打包到 ChainCode 中,每個 ChainCode 中可以包含多個智能合約。ChainCode 需要安裝,ChainCode 需要安裝到 Peer 節點上。安裝好了之後,ChainCode 需要在 Channel 上實例化,實例化的時候需要指定背書策略。
智能合約在實例化之後就可以用來與賬本進行交互了,流程圖如下:
用戶編寫並部署實例化智能合約之後,就可以通過客戶端應用程序來向智能合約提交請求,智能合約會對 WorldState 中數據進行 get、put 或者 delete。其中 get 操作直接從 WorldState 中讀取交易對象當前的狀態信息,不會去區塊鏈上寫入信息,但 put 和 delete 操作除了修改 WorldState,還會去區塊鏈中寫入一條交易信息,且交易信息不能修改。
區塊鏈上的信息可以通過智能合約訪問,也可以在客戶端應用通過 API 直接訪問。
Event 是客戶端應用和 Fabric 網路交互的一種方式,客戶端應用可以訂閱 Event,當 Event 發生時,客戶端應用就會接受到消息。
事件源可以兩類,一類是智能合約發出的 Event,另一類是賬本變更觸發的 Event。用戶可以從 Event 中獲取到交易的信息,比如區塊高度等信息。
在這篇文章中,首先介紹了 Fabric 整體的網路架構,通過對 Fabric 交易流程的分析,討論了 peer 節點在交易中的作用,然後詳細分析了 peer 節點所維護的賬本和智能合約,並分析了 peer 節點維護賬本以及 peer 節點執行智能合約的流程。
文 / Rayjun
[1] https://hyperledger-fabric.readthedocs.io/zh_CN/release-1.4/whatis.html
[2] https://developer.ibm.com/zh/technologies/blockchain/series/os-academy-hyperledger-fabric/
[3] https://en.wikipedia.org/wiki/Gossip_protocol
④ 區塊鏈聯盟怎麼加入(加入區塊鏈要交錢嗎)
微軟、超級賬本和聯合國加入區塊鏈身份聯盟ID2020科技巨頭微軟和區塊鏈聯盟超級賬本(Hyperledger)已經加入了基於區塊鏈的數字身份項目——ID2020聯盟。
這個消息是昨日在瑞士達沃斯的世界經濟論壇上宣布的,ID2020聯盟——援助機構MercyCorps和聯合國國際計算中心也已經加入了該聯盟——旨在通過提供數字身份來改善人們的生活。
根據一份新聞稿所說,該團體正在開發解決方案,重點是通過使用區塊鏈技術讓用戶直接擁有和控制他們的個人數據。問題的焦點在於全球有11億多人無法證明自己的身份從而難以獲得福利和服務。據世界銀行稱,這種情況也引發了諸如人口販賣等更為嚴重的問題。
該項目目前已收到微軟的100萬美元捐款,以及埃森哲(Accenture)和洛克菲勒基金會(RockefellerFoundation)等實體的捐款。該項目的創始成員之一全球咨詢巨頭埃森哲(Accenture)去年夏天在紐約舉行的ID2020聯盟峰會上宣布了100萬美元的投資。
埃森哲全球區塊鏈實踐總經理DavidTreat說:
去中心化的、用戶控制的數字身份有可能具有幫助難民和其他處境不利的人解鎖經濟機會的潛力,同時改善那些只想安全和私下地瀏覽網路的人的生活。
新聞稿還解釋了用戶擁有的數字身份將包括政府頒發的合法身份證明形式,並允許對個人和機構進行無縫認證。
區塊鏈之聯盟鏈(三)認識Fabric
Fabric是超級賬本聯盟推出的核心區塊鏈框架,它適合在復雜的企業內和企業間搭建聯盟鏈。根據超級賬本聯盟的目標,Fabric被建設為一個模塊化的、支持可插拔組件的基礎聯盟鏈框架。;
與以太坊系的Quorum不同,Fabric從一開始就只考慮企業間的應用。其獨有的channel概念,將企業根據業務目的不同以不同的子網連接起來,每一個子網對應一個channel,而每個channel有自己獨立的區塊鏈。而Quorum很顯然是只有一個公網(所有企業節點都加入進去),企業與企業間的私有業務是通過PrivateManager完成的。
理解channel的最簡單方法就是,將它類比為一個消息服務提供的Topic,實際上Fabic最早就是基於Kafka?的分布式消息服務來實現。
????在Fabric網路中,一個企業可以有一個或多個節點加入整個聯盟鏈;一個企業可以加入1個或者多個Channel(子網);?一個節點可以加入1個或者多個channel。每個channel構成一個子網,所以Fabric是一種由子網組成的網路。
那麼Fabric是怎麼實現智能合約的執行和完成業務上鏈(將事務結果記錄在區塊鏈里)的呢?
與其它框架不同,Fabric將整個過程分成了三個階段:
業務背書階段:客戶的請求發送的背書節點,通過智能合約完成業務的計算(但不更新狀態),並完成背書;將背書結果返回個客戶端。
業務的排序階段:客戶端將背書結果通過Channel被發送到排序節點(orderer),在排序節點完成事務的排序,並打包到block里,最後下發給所有連接到channel的節點。
業務驗證並寫入賬本階段:通過Gossip網路,所有Channel的節點都會接收到新的block,節點會驗證block中的每一個事務,確定是否有效:有效地將會跟新worldstate,無效的將會標志為「無效」,不會更新Worldstate,但整個block會被完整的加入到帳本中(包括無效的事務)。
根據以上的描述,Fabric節點實際可以分為?,普通節點和Order節點:
?Peer,普通節點,完成背書(包括只能合約的執行)和驗證.
orderer,?排序節點,完成排序。
加入orderer節點的Fabric網路可以被描述如下:
每一個Channel,都定義了所有屬於channel的節點,但是並不需要所有節點都連接到Orderer節點(節點間可以通過gossip協議通訊來傳播私有數據或事務).
????在區塊鏈中,共識是區塊鏈的基礎。與公有鏈不同,聯盟鏈的共識要求所有加入賬本的事務是確定的、最終的,也就是不可以有分叉,區塊與區塊間的順序是一定的,只存在唯一條鏈。在Fabric中,這個客觀需求正是由排序實現的,所有的事務將被提交給orderer節點獲得確定的順序,並最終打包成block進入帳本。Fabric從1.4.1開始支持基於Raft實現排序服務,?可以認為基於Raft實現共識。
基於RAFT的排序服務相對於早期的Kafka具有更好的分布性,配置更加簡單,是聯盟鏈里常用的一個常用的達成共識的演算法,Quorum就默認使用RAFT作為共識層。簡單的說,RAFT是一個leader和follower的模式,所有加入RAFT網路的節點,任意時候都有一個leader,?只有這個leader有權決定事務的順序,並打包成Block,其它節點只能作為follower提交事務和同步block。
基於FAFT網路,每個企業可以有一個或多個節點參與到Orderer中去。在Frabric中企業間的網路連接可以變化成如下形式:
????區塊鏈的使用用戶在乙太網中被稱作EOA(ExternalofAccount),EOA的載體是錢包。我們沿用這個概念,來看看Fabric是如何實現用戶和發起事務的。Fabric中EOA是一個CA中心發布的certificate(x.509),一個Certificate代表一個Identity(這與以太坊還是有很大區別的,以太坊中一個EOA其實是一個hash地址),EOA能夠參與的channel以及被授權的操作是有channel的MSP(MembershipService?Provider)決定的(如下圖)。
註:certificate是一種密碼學上驗證身份的通用做法;certificate包含了個人的信息,公鑰以及發布這個certificate的CA的簽名。驗證方只需要擁有這個CA的證書(包含CA的公鑰),就可以驗證這個簽名是否正確,certificate的內容是否有篡改。簡單的說,通過CA和Certificate,我們可以獲得一個可驗證的的身份和信任鏈。
???如上圖,fabric中通要使用Wallet作為EOA的載體,一個Wallet中可以包含多個Identity(x.509certificate)。Identity通過CA提供的信任鏈來驗證正確性。
?驗證了身份之後,Fabric通過MSP在區塊鏈網路中解決該身份是否代表組織的成員和在組織內具有什麼角色。例如,channel首先會驗證當前用戶Identity是否是有效地身份,然後通過MSP查看其所處的企業和具有的角色,最終確定該用戶是否有權執行操作。
可以說,Fabric的訪問控制是通過MSP來完成的。在每一個需要訪問控制的地方都需要定義一個MSP。?例如,每個channel都定義一個MSP,這個MSP規定了在channel范圍內資源的訪問許可權。MSP是Fabric里一個晦澀難懂的概念,也是其賦予企業間安全訪問的基礎。
前文提到,Fabric將業務處理和上網分成了三個部分,背書,排序,驗證後加入賬本。
其中背書是Fabric執行智能合約的階段。以太坊中,智能合約是在EVM中執行的,有多種語言支持。在Fabric,智能合約被稱為chaincode:一個chaincode可以理解為是智能合約的容器,可以包含一個或多個智能合約,不用於EVM,chaincode是在JVM或NodeJS中執行。
客戶應用程序通過智能合約來訪問賬本,每一個可訪問的智能合約都被安裝在客戶端可以訪問的節點上,並被定義在channel里。(有隻能合約的節點被稱為背書節點,沒有隻能合約的節點被稱未提交節點,提交節點只維護賬本)
客戶應用提交一個交易請求,請求到達背書節點,背書節點首先會驗證客戶的簽名,確保客戶的身份有權執行本次交易,接著執行交易提及的智能合約(chaincode),並生成一個背書響應(或者叫做交易提案,tran-proposal)。這個背書響應中通常包含Worldstate的讀集合,寫集合,以及節點對本次交易的簽名。這里與以太坊系聯盟鏈最主要的不同是:背書階段只模擬交易,並不真正更新交易結果。而真正更新交易在第三階段完成。背書節點最後將生成的背書響應fanhui給客戶端,智能合約部分的執行就結束了。
通常一個交易的執行需要多方的簽名,所以客戶端需要將一個交易發送給多個背書節點,這些背書節點的選擇需要滿足背書策略的要求。
下圖是一個包含有客戶、背書節點,提交節點的網路示意圖。
根據Fabric官方的參考文檔,客戶交易的正果過程可使用下圖描述。
如上圖,從1到3,為背書階段,4為排序階段,4.1,4,2,5為驗證提交階段。參考Frabic的節點概念,可以了解更多在交易細節的概念。??
總的來看,Fabric更專注於企業間,通過上文,可以讓大家對Fabric的基本構成與概念有一個總的了解。?Fabric本身並不神秘,都是使用的現有的企業間的技術。要更好的了解,建議參考閱讀分布式消息系統和企業的安全基礎設施(CA相關)的支持。與以太坊系聯盟鏈實現比較,?Fabric的子網更概念對於復雜企業間應用適應更強,但是其復雜的安全考量,使得運營成本很高,另外,Fabric使用Certificate做為用戶身份,有很大的局限性,在新的2.0里,Fabric對於此處將有所改變。
下一篇,我們將來看看Sawtooth?,由Inter提供的區塊鏈框架。
區塊鏈之聯盟鏈(一)認識以太坊
區塊鏈之聯盟鏈(二)認識Quotum
區塊鏈之聯盟鏈(三)認識Fabric
區塊鏈之聯盟鏈(四)認識Sawtooth
申請同心互助區塊鏈怎麼加入?首先得注冊為同心互助會員,然後再申請加入同心互助區塊鏈網路填寫郵箱,再根據郵件提示安裝同心互助客戶端,最後登錄同心互助客戶端就可以去使用同心互助區塊鏈客戶端了。
參加區塊鏈需要什麼條件?這是一本全面深入闡述區塊鏈技術的書籍,書中重點闡述了區塊鏈的實現原理、共識機制、應用場景以及未來發展方向。本書共5章,主要內容為:從比特幣以及區塊鏈的發展歷程與原理等方面介紹區塊鏈的起源與成功應用;從區塊鏈與傳統行業、人工智慧、金融、大數據等方面的結合,描述了區塊鏈能為人們帶來的巨大技術變革;介紹了區塊鏈技術的主要應用場景及相應案例,包括存在性證明、智能合約、供應鏈、身份驗證、資產交易、預測市場、電子商務、物流、文件存儲、醫療等;從原理、技術創新、發展等方面介紹了當下成功的區塊鏈技術實踐項目,包括以太坊、公證通、比特股、瑞波以及超級賬本;從區塊鏈網路自身的演化、物聯網、互聯網等方面描繪了區塊鏈技術的未來藍圖——構建基於信用的下一代互聯網。
比特幣系統中每個區塊發行比特幣的數量是隨著時間階梯性遞減的。創世區塊起的每個區塊將發行50個比特幣獎勵給該區塊的記賬者,此後每隔約4年(21萬個區塊)每區塊發行比特幣的數量降低一半,依此類推,一直到比特幣的數量穩定在上限2100萬為止[19]。比特幣交易過程中會產生手續費,目前默認手續費是萬分之一個比特幣,這部分費用也會記入區塊並獎勵給記賬者。
隨著比特幣的價格不斷飆升越來越多的人加入到了比特幣挖礦的行業中去,那麼一個比特幣要挖多久才能挖到呢?比特幣挖礦機的耗電量有多驚人呢?首先我們來了解一下「區塊鏈」,比特幣的核心原理是「區塊鏈」,每一個區塊對應一個帳單,將所有的區塊鏈接起來就是區塊鏈,任何交易信息和轉賬記錄都記錄在區塊鏈中。要注意的是區塊鏈存在於整個互聯網中,所以任何比特幣持有者都不擔心比特幣遭受損失。
區塊鏈大概就是這樣的一個結構,我們簡單的解釋一下。以比特幣的區塊鏈作為案例,區塊鏈不是只有比特幣區塊鏈,早09年的時候就只有一個,就是比特幣的區塊鏈,後來這幾年發展當中也有了別的區塊鏈,一會兒我也會介紹像以太坊的區塊鏈,或者比特股的區塊鏈,以及各種各樣的區塊鏈,區塊鏈上面發展出來之後,現在開始進入了公有鏈和私有鏈,就像比特幣公有鏈是全世界的一本帳,全世界的,比特幣只有一個區塊鏈那就是在全球擁有的,後來發展到了有一些金融機構,它要用區塊鏈來做東西,它不能夠搞一個沒有國界控制的區塊鏈上面來做事情,比特幣區塊鏈是全球的,沒有任何主權去管理它,也沒有任何中心機構可以管理它,而且幾乎沒有哪個能夠傷害它,不僅黑客無法傷害比特幣區塊鏈,政府也無法傷害比特幣區塊鏈。
⑤ 大區塊鏈中節點有哪些類型,區塊鏈節點什麼意思
區塊鏈的鏈分類前兩天有朋友微信上問了許多關於區塊鏈的一些問題,其中一個問題就是區塊鏈的這個鏈怎麼去分類。區塊鏈目前可以分為四類:公鏈,私鏈,聯盟鏈以及側鏈。北京木奇移動技術有限公司,專業的區塊鏈外包開發公司,歡迎洽談合作。下面帶大家了解區塊鏈這幾個鏈各自的特點以及如何應用,希望對大家有所幫助。
1.公鏈——人人可參與
公鏈是指任何人都可讀取的、任何人都能發送交易且交易能獲得有效確認的、任何人都能參與其中共識過程的區塊鏈。
公鏈採取了採取工作量證明機制(POW)、權益證明機制(POS)、股份授權證明機制(DPOS)等方式,並將經濟獎勵和加密數字驗證結合了起來,並建立一個原則就是每個人從中可獲得的經濟獎勵與工作量成正比。這些區塊鏈通常被認為是完全去中心化的。
特性:
1.開源,由於整個系統的運作規則公開透明,這個系統是開源系統;2.保護用戶免受開發者的影響,在公有鏈中程序開發者無權干涉用戶,所以區塊鏈可以保護使用他們開發的程序的用戶;3.訪問門檻低,任何擁有足夠技術能力的人都可以訪問,也就是說,只要有一台能夠聯網的計算機就能夠滿足訪問的條件;4.所有數據默認公開,盡管所有關聯的參與者都隱藏自己的真實身份,這種現象十分的普遍。他們通過他們的公共性來產生自己的安全性,在這里每個參與者可以看到所有的賬戶余額和其所有的交易活動。
案例:公有鏈中有許多我們熟悉的身影:BTC,ETH,EOS,AE,ADA等
2.私鏈——權利掌握在少數人手裡
私鏈是指其寫入許可權僅在一個組織手裡的區塊鏈。讀取許可權或者對外開放,或者被任意程度地進行了限制。相關的應用囊括資料庫管理、審計、甚至一個公司,盡管在有些情況下希望它能有公共的可審計性,但在很多的情形下,公共的可讀性並非是必須的。
特性:
1.交易速度快,一個私鏈的交易速度可以比任何其他的區塊鏈都快,甚至接近了並不是一個區塊鏈的常規資料庫的速度。這是因為就算少量的節點也都具有很高的信任度,並不需要每個節點來驗證一個交易。2.隱私性好,給隱私更好的保障私有鏈使得在那個區塊鏈上的數據隱私政策像在另一個資料庫中似的完全一致;不用處理訪問許可權和使用所有的老辦法,但至少說,這個數據不會公開地被擁有網路連接的任何人獲得。3.交易成本低交易成本大幅降低甚至為零私有鏈上可以進行完全免費或者至少說是非常廉價的交易。如果一個實體機構控制和處理所有的交易,那麼他們就不再需要為工作而收取費用。
案例:Linux基金會、R3CEVCorda平台以及GemHealth網路的超級賬本項目(Hyperledgerproject)或在開發或在使用私鏈。
3.聯盟鏈——部分去中心化
聯盟鏈開放程度和去中心化程度是有所限制的。其參與者是被提前篩選出來或者直接指定的,資料庫的讀取許可權可能是公開的,也可能像寫入許可權一樣只限於系統的參與者。
特性:
1.交易成本低,交易只需被幾個受信的高算力節點驗證就可以了,而無需全網確認;2.節點容易連接,若是出了問題,聯盟鏈可以迅速通過人工干預來修復,並允許使用共識演算法減少區塊時間,從而更快完成交易;3.靈活,如果需要的話,運行私有區塊鏈的共同體或公司可以很容易地修改該區塊鏈的規則,還原交易,修改余額等。
案例:瑞波用於日韓國際匯款及日本本國銀行間匯款建立了聯盟鏈,同時之前火過一陣子的迅雷鏈克也是一種半開放的聯盟鏈。
4.側鏈——拓展協議
側鏈」從嚴格上來說,其本身並不是區塊鏈,可以理解為區塊鏈的一種擴展協議。早期「側鏈」是為了解決比特幣區塊鏈技術的限制問題。側鏈就像是一條條通路,將不同的區塊鏈互相連接在一起,以實現區塊鏈的擴展。側鏈完全獨立於比特幣區塊鏈,但是這兩個賬本之間能夠「互相操作」,實現交互。
特性:
1.獨立性,側鏈架構的好處是代碼和數據獨立,不增加主鏈的負擔,避免數據過度膨脹。側鏈有獨立的區塊鏈,有獨立的受託人或者說見證人,同時也有獨立的節點網路,就是說一個側鏈產生的區塊只會在所有安裝了該側鏈的節點之間進行廣播。2.靈活性,側鏈所有的區塊鏈參數是可以定製的,簡單的比如區塊間隔、區塊獎勵、交易費的去向等,高級用戶還可以修改共識演算法。
案例:LSK,RDN,ARDR等幣種是利用的側鏈技術。
對於目前整個數字貨幣領域而言,今年可能仍然是底層公有鏈項目的競爭大賽,原因是目前公鏈作為區塊鏈的基礎設施還是存在明顯的不足,尚且無法實現真正的安全、可靠和高效。這也明顯制約著整個區塊鏈產業的發展。
淺析FabricPeer節點
HyperledgerFabric,也稱之為超級賬本,是由IBM發起,後成為Linux基金會Hyperledger中的區塊鏈項目之一。
Fabric是一個提供分布式賬本解決方案的平台,底層的賬本數據存儲使用了區塊鏈。區塊鏈平台通常可以分為公有鏈、聯盟鏈和私有鏈。公有鏈典型的代表是比特幣這些公開的區塊鏈網路,誰都可以加入到這個網路中。聯盟鏈則有準入機制,無法隨意加入到網路中,聯盟鏈的典型例子就是Fabric。
Fabric不需要發幣來激勵參與方,也不需要挖礦來防止有人作惡,所以Fabric有著更好的性能。在Fabric網路中,也有著諸多不同類型的節點來組成網路。其中Peer節點承載著賬本和智能合約,是整個區塊鏈網路的基礎。在這篇文章中,會詳細分析Peer的結構及其運行方式。
在本文中,假設讀者已經了解區塊鏈、智能合約等概念。
本文基於Fabric1.4LTS。
區塊鏈網路是一個分布式的網路,Fabric也是如此,由於Fabric是聯盟鏈,需要准入機制,所以在網路結構上會復雜很多,下面是一個簡化的Fabric網路:
各個元素的含義如下:
對於Fabric網路,外部的用戶需要通過客戶端應用,也就是圖中的A1、A2或者A3來訪問網路,客戶端應用需要通過CA證書表明自己的身份,這樣才能訪問到Fabric網路中有許可權訪問的部分。
在上面的網路中,共有四個組織,R1、R2、R3和R4。其中R4是整個Fabric網路的創建者,網路是根據NC4配置的。
在Fabric網路中,不同的組織可以組成聯盟,不同的聯盟之間數據通過Channel來隔離。Channel中的數據只有該聯盟中的組織才能訪問,每一個新的Channel都可以認為是一條新的鏈。與其他的區塊鏈網路中通常只有一條鏈不一樣,Fabric可以通過Channel在網路中快速的搭建出一個新的區塊鏈。
上面R1和R2組成了一個聯盟,在C1上交易。R2同時又和R3組成了另外一個聯盟,在C2上交易。R1和R2在C1上交易時,對R3是不可見的,R2和R3在C2上交易時,對R1是不可見的。Channel機制提供了很好的隱私保護能力。
Orderer節點是整個Fabric網路共有的,用來為所有的交易排序、打包。比如上面網路中O4節點。本文不會對Orderer節點進行詳細說明,可以把這個功能理解為比特幣網路中的挖礦過程。
Peer節點表示網路中的節點,通常一個Peer就表示一個組織,Peer是整個區塊鏈網路的基礎,是智能合約和賬本的載體,Peer也是本文討論的重點。
一個Peer節點可以承載多套賬本和智能合約,比如P2節點,既維護了C1的賬本和智能合約,也維護了C2的賬本和智能合約。
為了可以更深入了解Peer節點的作用,先了解一下Fabric整體的交易流程。整體的交易流程圖如下:
Peer節點按照功能來分可以分為背書節點和記賬節點。
客戶端會提交交易請求到背書節點,背書節點開始模擬執行交易,在模擬執行之後,背書節點並不會去更新賬本數據,而是把這個交易進行加密和簽名,然後返回給客戶端。
客戶端收到這個響應之後就會把響應提交到Orderer節點,Orderer節點會對這些交易進行排序,並打包成區塊,然後分發到記賬節點,記賬節點就會對交易進行驗證,驗證結束之後,就會把交易記錄到賬本裡面。
一筆交易是否能成功是根據背書策略來指定的,每一個智能合約都會指定一個背書策略。
Peer節點代表著聯盟鏈中的各個組織,區塊鏈網路也是由Peer節點來組成的,而且也是賬本和智能合約的載體。
通過對上面交易過程的了解可以知道,Peer節點是主要的參與方。如果用戶想要訪問賬本資源,都必須要和peer節點進行交互。在一個Peer節點中,可以同時維護多個賬本,這些賬本屬於不同的Channel。每個Peer節點都會維護一套冗餘賬本,這樣就避免了單點故障。
Peer節點根據在交易中的不同角色,可以分成背書節點(Endorser)和記賬節點(Committer),背書節點會對交易進行模擬執行,記賬節點才會真正將數據存儲到賬本中。
賬本可以分成兩個部分,一部分是區塊鏈,另一部分是CurrentState,也被稱之為WorldState。
區塊鏈上只能追加,不能對過去的數據進行修改,鏈上也包含兩部分信息,一部分是通道的配置信息,另一部分是不可修改,序列化的記錄。每一個區塊記錄前一個區塊的信息,然後連成鏈,如下圖所示:
第一個區塊被稱之為genesisblock,其中不存儲交易信息。每個區塊可以被分為區塊頭、區塊數據和區塊元數據。區塊頭中存儲著當前區塊的區塊號、當前區塊的hash值和上一個區塊的hash值,這樣才能把所有的區塊連接起來。區塊數據中包含了交易數據。區塊元數據中則包括了區塊寫入的時間、寫入人及簽名。
其中每一筆交易的結構如下,在Header中,包含了ChainCode的名稱、版本信息。Signature就是交易發起用戶的簽名。Proposal中主要是一些參數。Response中是智能合約執行的結果。Endorsements中是背書結果返回的結果。
WorldState中維護了賬本的當前狀態,數據以Key-Value的形式存儲,可以快速查詢和修改,每一次對WorldState的修改都會被記錄到區塊鏈中。WorldState中的數據需要依賴外部的存儲,通常使用LevelDB或者CouchDB。
區塊鏈和WorldState組成了一個完整的賬本,WorldState保證的業務數據的靈活變化,而區塊鏈則保證了所有的修改是可追溯和不可篡改的。
在交易完成之後,數據已經寫入賬本,就需要將這些數據同步到其他的Peer,Fabric中使用的是Gossip協議。Gossip也是Channel隔離的,只會在Channel中的Peer中廣播和同步賬本數據。
智能合約需要安裝到Peer節點上,智能合約是訪問賬本的唯一方式。智能合約可以通過Go、Java等變成語言進行編寫。
智能合約編寫完成之後,需要打包到ChainCode中,每個ChainCode中可以包含多個智能合約。ChainCode需要安裝,ChainCode需要安裝到Peer節點上。安裝好了之後,ChainCode需要在Channel上實例化,實例化的時候需要指定背書策略。
智能合約在實例化之後就可以用來與賬本進行交互了,流程圖如下:
用戶編寫並部署實例化智能合約之後,就可以通過客戶端應用程序來向智能合約提交請求,智能合約會對WorldState中數據進行get、put或者delete。其中get操作直接從WorldState中讀取交易對象當前的狀態信息,不會去區塊鏈上寫入信息,但put和delete操作除了修改WorldState,還會去區塊鏈中寫入一條交易信息,且交易信息不能修改。
區塊鏈上的信息可以通過智能合約訪問,也可以在客戶端應用通過API直接訪問。
Event是客戶端應用和Fabric網路交互的一種方式,客戶端應用可以訂閱Event,當Event發生時,客戶端應用就會接受到消息。
事件源可以兩類,一類是智能合約發出的Event,另一類是賬本變更觸發的Event。用戶可以從Event中獲取到交易的信息,比如區塊高度等信息。
在這篇文章中,首先介紹了Fabric整體的網路架構,通過對Fabric交易流程的分析,討論了peer節點在交易中的作用,然後詳細分析了peer節點所維護的賬本和智能合約,並分析了peer節點維護賬本以及peer節點執行智能合約的流程。
文/Rayjun
[1]
[2]
[3]
區塊鏈的分類目前區塊鏈分為三類,其中混合區塊鏈和私有區塊鏈可視為:廣義私有鏈,公共區塊鏈公共區塊鏈。意味著世界上任何個人或團體都可以發送交易,交易可以由區塊鏈有效確認,任何人都可以參與其共識過程。公共區塊鏈是目前最早的區塊鏈,也是使用最廣泛的區塊鏈。每個比特幣系列的虛擬數字貨幣都以公共的區塊鏈為基礎,世界上只有一個區塊鏈對應這種貨幣。
拓展資料
1.工業區塊鏈行業blockchains:組內多個預選節點指定為記賬員,每個區塊的生成由所有預選節點共同決定(預選節點參與共識過程),其他接入節點可以參與交易,但不幹擾核算過程(本質上,它是管理簿記,但它成為分布式簿記。多少預先選擇的節點和如何確定每個塊的簿記員成為區塊鏈的主要風險點),其他任何人都可以通過區塊鏈的開放API進行有限的查詢。私人區塊鏈Private區塊鏈((privateblockchains)):只有區塊鏈的總賬技術用於記賬。它可以是一個公司或個人獨家書面許可的區塊鏈。這個鏈與其他分布式存儲方案沒有太大的不同。目前(2015年12月),保守的巨頭(傳統金融)想要嘗試私有的區塊鏈,而公共鏈的應用,如比特幣,已經產業化,私有鏈的應用產品還在探索中。區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的一種新的應用模式。區塊鏈是比特幣的一個重要概念。本質上,它是一個去中心化的資料庫。
2.同時,作為比特幣的底層技術,它是一系列與加密方法相關聯的數據塊。每個數據塊包含一批比特幣網路交易信息,驗證其信息的有效性(防偽)並生成下一個區塊。事實上,區塊鏈這個詞並沒有出現在英文原版的比特幣白皮書中,而是出現在區塊鏈中。在最早的比特幣白皮書中,區塊鏈被翻譯為區塊鏈。這是漢語「區塊鏈」最早出現的時間。國家互聯網信息辦公室於2019年1月10日發布《區塊鏈信息服務管理條例》,自2019年2月15日起施行。從狹義上講,區塊鏈是一種按時間順序組合數據塊的鏈式數據結構,以及由密碼學保證的防篡改和可偽造的分布式分類帳。廣義上講,區塊鏈技術是一種新的分布式基礎設施和計算方法,它使用區塊鏈數據結構來驗證和存儲數據,使用分布式節點共識演算法來生成和更新數據,使用密碼學來確保數據傳輸和訪問的安全性,採用由自動腳本代碼組成的智能契約對數據進行編程和操作。
節點的類型有哪些?比特幣P2P網路中的各個節點相互對等,但是根據所提供的功能不同,各節點可能具有不同的分工,每個比特幣節點都是錢包、礦工、完整區塊鏈、網路路由節點的功能集合。
主流區塊鏈技術有哪些本文試圖對區塊鏈有關技術流派和主流平台進行一個概覽,作為學習區塊鏈技術體系的導覽,意在拋磚引玉,促進區塊鏈開發社區的討論與共識。區塊鏈技術的流派未戰先謀局,你想投入區塊鏈開發這個領域,至少先要搞清楚現在有哪些玩家,各自的主張和實力如何。劃分區塊鏈技術流派並無一定之規,據我所見,或可有以下四種方式:第一是按照節點准入規則,劃分為公有鏈、私有鏈和聯盟鏈。公有鏈的代表自然是比特幣和以太坊,私有鏈則以R3Corda聲名最盛,聯盟鏈的代表作品是Hyperledger名下的Fabric。公有鏈注重匿名性與去中心化,而私有鏈及聯盟鏈注重高效率,而且還往往設置了准入門檻。公有鏈、私有鏈與聯盟鏈之間的這些不同都在技術中有所體現,比如私有鏈和聯盟鏈假設節點數目不大,可以採用PBFT演算法來形成共識。而公有鏈假設有大量且不斷動態變化的節點網路,用PBFT效率太低,只能採用類似抽彩票的演算法來確定意見領袖。這就意味著,私有鏈與聯盟鏈很難變成公有鏈,而用公有鏈來作聯盟鏈或私有鏈雖然容易,卻也並非即插即用。此種差異,學者不可不察。第二是按照共享目標,劃分為共享賬本和共享狀態機兩派。比特幣是典型的共享賬本,而Chain和BigchainDB也應屬此類,這幾個區塊鏈系統在各個節點之間共享一本總賬,因此對接金融應用比較方便。另一大類區塊鏈系統中,各個節點所共享的是可完成圖靈完備計算的狀態機,如以太坊、Fabric,它們都通過執行智能合約而改變共享狀態機狀態,進而達成種種復雜功能。第三是按照梅蘭妮·斯旺所描述的代際演進,將區塊鏈系統分為1.0、2.0和3.0三代。其中1.0支撐去中心化交易和支付系統,2.0通過智能合約支撐行業應用,3.0支撐去中心化的社會體系。比特幣和Chain應屬於區塊鏈1.0系統,而以太坊和Fabric是區塊鏈2.0系統,目前尚無成功的區塊鏈3.0系統出現,不成功的嘗試倒是有那麼一個,就是著名的TheDAO。第四是按照核心數據結構,分為區塊鏈和分布式總賬兩派。區塊鏈這一派在系統中真的實現了一個區塊的鏈作為核心數據結構,而分布式總賬這一派,只是吸取了區塊鏈的精神,並沒有真用一條區塊鏈作為核心數據結構,或者雖然暫時用了,但聲明說吾項庄舞區塊鏈,意在分布式總賬耳,若假以時日,因緣際會,未嘗不可取而代之也。主流區塊鏈技術平台了解流派劃分,仍是只能用來指點江山,吹牛論道,要動手,總要有個切入點。區塊鏈貨幣據說已經有上千個了,但值得關注的技術平台大概只有數十個,而如果要進入區塊鏈開發領域,打下一個好基礎,練出一身好功夫,撈到幾個好offer,則值得深入研究學習的平台,屈指可數。首先當然是比特幣。比特幣作為區塊鏈的第一個也是目前為止最成功、最重要的樣板工程,已經上線運行了八年多,本身沒有發生任何嚴重的安全和運維事故,其穩定與強悍堪稱當代軟體系統典範。比特幣BitcoinCore是一個代碼質量高、文檔良好的開源軟體,從學習區塊鏈原理、掌握核心技術的角度來說,BitcoinCore是最佳切入點,能夠學到原汁原味的區塊鏈技術。當然,BitcoinCore是用C++寫的,而且用了一些C++11和Boost庫的機制,對學習者的C++水平提出了較高的要求。學習比特幣平台開發還有一個優勢,就是可以對接繁榮的比特幣技術社區。目前圍繞比特幣進行改進和提升的人很多,人多力量就大,諸如隔離驗證、閃電網路、側鏈等比較新的想法和技術,都率先在比特幣社區里落地。比如側鏈技術的主要領導者Blockstream是由密碼學貨幣元老AdamBack領銜的,而Blockstream是BitcoinCore最大的貢獻者之一,所以一些有關側鏈的技術在比特幣社區里討論最充分。但比特幣作為一個典型的區塊鏈1.0系統,是不是支撐其他類型區塊鏈應用的最佳技術平台,存在很大的爭議。另外,也不是所有人都有能力和必要精通區塊鏈底層技術。所以對那些急於沖到區塊鏈領域里做(quān)事(qián)的人來說,可能更直截了當的學習目標是以太坊和HyperledgerFabric。在以太坊上面用Solidity進行的智能合約開發是切入區塊鏈開發最簡單的方式,沒有之一。以太坊的理想非常宏大,由於配備了強大的圖靈完備的智能合約虛擬機,因此可以成為一切區塊鏈項目的母平台,是馱住整個區塊鏈世界的大烏龜。在以太坊上開發一個類似比特幣的加密貨幣,是一個不折不扣的小目標。一般有經驗的開發者在文檔指導下,半天到一天即可入門。問題在於,入門以後又如何?靠寫Solidity是否就可以包打天下?這是大大存疑的。我們也可以反過來說,如果以太坊+Solidity是區塊鏈的終極解決方案,那麼怎麼還會出現那麼多區塊鏈技術門派呢?特別是,以太坊似乎並沒有給現實世界中巨型的中心化組織們留下一條活路,這種徹底不妥協的革命態度有可能也成為以太坊推廣的障礙。當前以太坊項目的開發進展並不順利。一個比較突出的問題是項目過多,力量分散,導致項目質量參差不齊。但盡管如此,跟其他區塊鏈2.0平台相比,以太坊提供的開發環境是最簡單最完善的。初學區塊鏈的人絕對有必要學習以太坊,從而對區塊鏈和智能合約建立起一個最「正宗」的認識。主流區塊鏈技術平台的第三支就是Fabric,它是Hyperledger的第一個也是最知名的孵化項目。Fabric最早來自IBM的OpenBlockchain項目,到2015年11月,IBM將當時已經開發完成的44,000行Go語言代碼交給Linux基金會,並入Hyperledger項目之中。在2016年3月一次黑客馬拉松中,Blockstream和DAH兩家公司將各自的代碼並入OpenBlockchain,隨後改名為Fabric。到目前為止,Fabric與Intel提供的SawtoothLake並列為Hyperledger的一級孵化項目,但前者得到的關注遠超後者。從技術角度來說,Fabric思路不錯,重點是滿足企業商用的需求,比如解決交易量問題。眾所周知,比特幣最大的短板是它每秒鍾7個交易的上限,完全無法滿足現實需要。而Fabric目標是實現每秒鍾10萬交易,這個量接近剛剛過去的雙十一交易量瞬時峰值,完全可以滿足正常條件下的行業級應用。Fabric用Go語言開發,也提供多種語言的API。特別值得一提的是,Fabric比較充分地運用了容器技術,比如其智能合約就運行在容器當中。這也是Go語言帶給Fabric的一項福利,因為Go語言靜態編譯部署的特徵很適合開發容器中的程序。Fabric還有一些特點,比如其membership服務可以設置節點准入審查,這是典型的聯盟鏈特徵。再比如其共識演算法是可定製的。Fabric的短板是體系較為復雜,雖有文檔,但缺少經驗的開發者學習起來障礙比較大。然而由於其定位清楚,迎合了不少企業的心態,所以已經有多家機構在基於Fabric秘密研發行業內的聯盟鏈項目。
⑥ 區塊鏈fabric什麼
超級賬本之——Fabric目前超級賬本下面有5個並行的項目,Fabric屬於其中較為成熟的一個。這個項目由,來自28個不同組織的159名工程師參與開發。
在Fabric的區塊鏈網路中,有四類節點:MSP,OrderingNode,EndorsingPeer,CommttingPeer
MSP(MembershipServiceProvider),這類節點主管區塊鏈網路中其他的節點的授權,准入,踢除。通過給不同節點頒發證書的方式,授予不同類型的節點相應的許可權。
中文可以稱作排序節點。通常在一個網路中至少有一個或多個排序節點,這類節點負責按照指定的演算法,將交易進行排序,並返回給CommittingPeer。其並不關心具體的交易細節。
這類節點的主要負責接收交易請求,驗證這筆交易之後,並做一些預處理之後,並將簽名後的數據傳回給客戶端。
這類節點做是區塊鏈網路中的全節點,它們需要記錄完整的區塊信息,並且驗證每筆交易的正確性,是最終將交易打包進區塊鏈的節點。
結合下面這種圖,看看一筆交易的上鏈過程:
1,首先從客戶端發起一筆交易提交到EndorsingPeer,進行預處理。
2,預處理通過之後,將簽名數據,傳回給客戶端。
3,客戶端發起請求,將收到的簽名數據傳給OrderingNode。
4,OrderingNode對交易進行排序,然後傳給CommittingPeer。
5,CommittingPeer這里將排序好的交易進行驗證,並打包,通過指定的共識演算法達成一致,形成新的區塊。
6,最後將交易結果返回給客戶端。
6,中間過程的每一步,都伴隨著許可權的驗證。會根據MSP頒發的證書,進行判斷。
區塊鏈的定義是什麼?區塊鏈有兩個含義:
1、區塊鏈(Blockchain)是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。所謂共識機制是區塊鏈系統中實現不同節點之間建立信任、獲取權益的數學演算法。
2、區塊鏈是比特幣的底層技術,像一個資料庫賬本,記載所有的交易記錄。這項技術也因其安全、便捷的特性逐漸得到了銀行與金融業的關注。
狹義來講,區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構,並以密碼學方式保證的不可篡改和不可偽造的分布式賬本。
廣義來講,區塊鏈技術是利用塊鏈式數據結構來驗證與存儲數據、利用分布式節點共識演算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操作數據的一種全新的分布式基礎架構與計算方式。
10000mm的fabric是什麼概念基本概念。10000mm的fabric是基本概念,fabric基本概念首先fabric是由IBM貢獻的超級賬本框架。它是一個利用現有成熟的技術來組合而成的一個區塊鏈技術的實現。它是一種允許可插拔實現各種功能的的模塊化架構。
區塊鏈是什麼意思?區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。
它本質上是一個去中心化的資料庫,同時作為比特幣的底層技術,是一串使用密碼學方法相關聯產生的數據塊。
在區塊鏈網路中,我們發出的數據請求,會根據密碼學原理被加密成為一串接受者完全看不懂的字元。這種加密方式的背後是哈希演算法在支持。
架構模型
一般說來,區塊鏈系統由數據層、網路層、共識層、激勵層、合約層和應用層組成。其中,數據層封裝了底層數據區塊以及相關的數據加密和時間戳等基礎數據和基本演算法;網路層則包括分布式組網機制、數據傳播機制和數據驗證機制等。
共識層主要封裝網路節點的各類共識演算法;激勵層將經濟因素集成到區塊鏈技術體系中來,主要包括經濟激勵的發行機制和分配機制等;合約層主要封裝各類腳本、演算法和智能合約,是區塊鏈可編程特性的基礎。
淺析FabricPeer節點HyperledgerFabric,也稱之為超級賬本,是由IBM發起,後成為Linux基金會Hyperledger中的區塊鏈項目之一。
Fabric是一個提供分布式賬本解決方案的平台,底層的賬本數據存儲使用了區塊鏈。區塊鏈平台通常可以分為公有鏈、聯盟鏈和私有鏈。公有鏈典型的代表是比特幣這些公開的區塊鏈網路,誰都可以加入到這個網路中。聯盟鏈則有準入機制,無法隨意加入到網路中,聯盟鏈的典型例子就是Fabric。
Fabric不需要發幣來激勵參與方,也不需要挖礦來防止有人作惡,所以Fabric有著更好的性能。在Fabric網路中,也有著諸多不同類型的節點來組成網路。其中Peer節點承載著賬本和智能合約,是整個區塊鏈網路的基礎。在這篇文章中,會詳細分析Peer的結構及其運行方式。
在本文中,假設讀者已經了解區塊鏈、智能合約等概念。
本文基於Fabric1.4LTS。
區塊鏈網路是一個分布式的網路,Fabric也是如此,由於Fabric是聯盟鏈,需要准入機制,所以在網路結構上會復雜很多,下面是一個簡化的Fabric網路:
各個元素的含義如下:
對於Fabric網路,外部的用戶需要通過客戶端應用,也就是圖中的A1、A2或者A3來訪問網路,客戶端應用需要通過CA證書表明自己的身份,這樣才能訪問到Fabric網路中有許可權訪問的部分。
在上面的網路中,共有四個組織,R1、R2、R3和R4。其中R4是整個Fabric網路的創建者,網路是根據NC4配置的。
在Fabric網路中,不同的組織可以組成聯盟,不同的聯盟之間數據通過Channel來隔離。Channel中的數據只有該聯盟中的組織才能訪問,每一個新的Channel都可以認為是一條新的鏈。與其他的區塊鏈網路中通常只有一條鏈不一樣,Fabric可以通過Channel在網路中快速的搭建出一個新的區塊鏈。
上面R1和R2組成了一個聯盟,在C1上交易。R2同時又和R3組成了另外一個聯盟,在C2上交易。R1和R2在C1上交易時,對R3是不可見的,R2和R3在C2上交易時,對R1是不可見的。Channel機制提供了很好的隱私保護能力。
Orderer節點是整個Fabric網路共有的,用來為所有的交易排序、打包。比如上面網路中O4節點。本文不會對Orderer節點進行詳細說明,可以把這個功能理解為比特幣網路中的挖礦過程。
Peer節點表示網路中的節點,通常一個Peer就表示一個組織,Peer是整個區塊鏈網路的基礎,是智能合約和賬本的載體,Peer也是本文討論的重點。
一個Peer節點可以承載多套賬本和智能合約,比如P2節點,既維護了C1的賬本和智能合約,也維護了C2的賬本和智能合約。
為了可以更深入了解Peer節點的作用,先了解一下Fabric整體的交易流程。整體的交易流程圖如下:
Peer節點按照功能來分可以分為背書節點和記賬節點。
客戶端會提交交易請求到背書節點,背書節點開始模擬執行交易,在模擬執行之後,背書節點並不會去更新賬本數據,而是把這個交易進行加密和簽名,然後返回給客戶端。
客戶端收到這個響應之後就會把響應提交到Orderer節點,Orderer節點會對這些交易進行排序,並打包成區塊,然後分發到記賬節點,記賬節點就會對交易進行驗證,驗證結束之後,就會把交易記錄到賬本裡面。
一筆交易是否能成功是根據背書策略來指定的,每一個智能合約都會指定一個背書策略。
Peer節點代表著聯盟鏈中的各個組織,區塊鏈網路也是由Peer節點來組成的,而且也是賬本和智能合約的載體。
通過對上面交易過程的了解可以知道,Peer節點是主要的參與方。如果用戶想要訪問賬本資源,都必須要和peer節點進行交互。在一個Peer節點中,可以同時維護多個賬本,這些賬本屬於不同的Channel。每個Peer節點都會維護一套冗餘賬本,這樣就避免了單點故障。
Peer節點根據在交易中的不同角色,可以分成背書節點(Endorser)和記賬節點(Committer),背書節點會對交易進行模擬執行,記賬節點才會真正將數據存儲到賬本中。
賬本可以分成兩個部分,一部分是區塊鏈,另一部分是CurrentState,也被稱之為WorldState。
區塊鏈上只能追加,不能對過去的數據進行修改,鏈上也包含兩部分信息,一部分是通道的配置信息,另一部分是不可修改,序列化的記錄。每一個區塊記錄前一個區塊的信息,然後連成鏈,如下圖所示:
第一個區塊被稱之為genesisblock,其中不存儲交易信息。每個區塊可以被分為區塊頭、區塊數據和區塊元數據。區塊頭中存儲著當前區塊的區塊號、當前區塊的hash值和上一個區塊的hash值,這樣才能把所有的區塊連接起來。區塊數據中包含了交易數據。區塊元數據中則包括了區塊寫入的時間、寫入人及簽名。
其中每一筆交易的結構如下,在Header中,包含了ChainCode的名稱、版本信息。Signature就是交易發起用戶的簽名。Proposal中主要是一些參數。Response中是智能合約執行的結果。Endorsements中是背書結果返回的結果。
WorldState中維護了賬本的當前狀態,數據以Key-Value的形式存儲,可以快速查詢和修改,每一次對WorldState的修改都會被記錄到區塊鏈中。WorldState中的數據需要依賴外部的存儲,通常使用LevelDB或者CouchDB。
區塊鏈和WorldState組成了一個完整的賬本,WorldState保證的業務數據的靈活變化,而區塊鏈則保證了所有的修改是可追溯和不可篡改的。
在交易完成之後,數據已經寫入賬本,就需要將這些數據同步到其他的Peer,Fabric中使用的是Gossip協議。Gossip也是Channel隔離的,只會在Channel中的Peer中廣播和同步賬本數據。
智能合約需要安裝到Peer節點上,智能合約是訪問賬本的唯一方式。智能合約可以通過Go、Java等變成語言進行編寫。
智能合約編寫完成之後,需要打包到ChainCode中,每個ChainCode中可以包含多個智能合約。ChainCode需要安裝,ChainCode需要安裝到Peer節點上。安裝好了之後,ChainCode需要在Channel上實例化,實例化的時候需要指定背書策略。
智能合約在實例化之後就可以用來與賬本進行交互了,流程圖如下:
用戶編寫並部署實例化智能合約之後,就可以通過客戶端應用程序來向智能合約提交請求,智能合約會對WorldState中數據進行get、put或者delete。其中get操作直接從WorldState中讀取交易對象當前的狀態信息,不會去區塊鏈上寫入信息,但put和delete操作除了修改WorldState,還會去區塊鏈中寫入一條交易信息,且交易信息不能修改。
區塊鏈上的信息可以通過智能合約訪問,也可以在客戶端應用通過API直接訪問。
Event是客戶端應用和Fabric網路交互的一種方式,客戶端應用可以訂閱Event,當Event發生時,客戶端應用就會接受到消息。
事件源可以兩類,一類是智能合約發出的Event,另一類是賬本變更觸發的Event。用戶可以從Event中獲取到交易的信息,比如區塊高度等信息。
在這篇文章中,首先介紹了Fabric整體的網路架構,通過對Fabric交易流程的分析,討論了peer節點在交易中的作用,然後詳細分析了peer節點所維護的賬本和智能合約,並分析了peer節點維護賬本以及peer節點執行智能合約的流程。
文/Rayjun
[1]
[2]
[3]
區塊鏈-什麼是區塊鏈?金點幣訊能讀懂區塊鏈?區塊鏈-什麼是區塊鏈?金點幣訊能讀懂區塊鏈?
區塊先鋒動畫視頻帶你了解什麼是區塊鏈,簡單易懂
什麼是區塊鏈,卯貝屬於區塊鏈?
答:卯貝不是屬於區塊鏈,只是運用了區塊鏈的技術,區塊鏈的特性就是每件發生的事物都會被記錄,不得刪除更改。
區塊鏈,什麼是區塊
區塊鏈全面解讀
一說起區塊鏈,人們總是拿它與比特幣相提並論。2008年10月31日,一名叫「中本聰」的人在一個密碼學郵件群組中發出電子郵件,宣稱,「我一直在研究一個新的電子現金系統,這完全是點對點的,無需任何可信的第三方。」他推出了一個以比特幣為交易貨幣的新體系。
什麼是區塊鏈技術?什麼叫區塊鏈?
區塊鏈是一種分布式共享記賬的技術,它要做的事情就是讓參與的各方能夠在技術層面建立信任關系。
區塊鏈可以大致分成兩個層面,一是做區塊鏈底層技術;二是做區塊鏈上層應用,即基於區塊鏈的改造、優化或者創新應用。
區塊鏈的核心意義到底是什麼,我們的理解是,區塊鏈最核心的意義是參與方之間建立數據信用,通過單方面的對抗,在明確規定下打造單方面的生態共同保障完整機會,這是一個體系,這種建立可以結束沒有區塊鏈之前的問題,沒有區塊鏈之前,在數據共享的時候是無法做到有新的共享,即使做定向也只是給你一個介面,區塊鏈有了以後,讓參與方是實現信用的共享。
區塊鏈的底層平台有哪些?
答:主要有一下幾類:
1、比特幣。是最早的區塊鏈開發便是基於比特幣的區塊鏈網路進行開發了,由於比特幣是全球最廣泛使用和真正意義的去中心化,就區塊鏈應用來說,比特幣就是世上最強大的錨,擁有最大的權威性。
2、以太坊。可以說除了比特幣外,以太坊目前在區塊鏈平台是最吸引眼球的。以太坊是一個圖靈完備的區塊鏈一站式開發平台,採用多種編程語言實現協議,採用Go語言寫的客戶端作為默認客戶端(即與以太坊網路交互的方法,支持其他多種語言的客戶端)。
3、IBMHyperLedger。又叫fabric,他的目標是打造成一個由全社會來共同維護的一個超級賬本,fabric源於IBM,初衷為了服務於工業生產,IBM將44,000行代碼開源,是了不起的貢獻,讓我們可以有機會如此近的去探究區別於比特幣的區塊鏈的原理。
4、LISK。是新一代的區塊鏈平台,允許JavaScript(又是Javascript技術,工程師們注意了)的開發和基於分布的分散的應用程序使用一個易於使用的,功能齊全的生態區塊鏈系統。
5、網錄區塊鏈平台。是網錄區塊鏈底層技術的研發成果和能夠進行商業交付的基礎平台,網錄區塊鏈平台除了服務網錄公鏈外,也是網錄為客戶打造私有鏈和聯盟鏈的基礎平台。
什麼是區塊鏈?什麼是數字貨幣的區塊鏈?
狹義來講,區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的一種鏈式數據結構,並以密碼學方式保證的不可篡改和不可偽造的分布式賬本。廣義來講,區塊鏈技術是利用塊鏈式數據結構來驗證與存儲數據、利用分布式節點共識演算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操作數據的一種全新的分布式基礎架構與計算範式。
現在,主流的數字貨幣基本上都是基於區塊鏈技術開發的。區塊鏈是數字貨幣的底層技術。國內的茶本位數字貨幣普銀就是基於區塊鏈技術開發的。
什麼是區塊鏈
區塊鏈的本質是一種去中心化的記賬系統,比特幣是這個系統上承載的「以數字形式存在」的貨幣。區塊鏈是比特幣背後的一套由信用記錄和信用記錄的清算構成的體系。
區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。所謂共識機制是區塊鏈系統中實現不同節點之間建立信任、獲取權益的數學演算法[1]。
區塊鏈(Blockchain)是比特幣的一個重要概念,火幣網聯合清華大學五道口金融學院互聯網金融實驗室、新浪科技發布的《2014—2016全球比特幣發展研究報告》提到區塊鏈是比特幣的底層技術和基礎架構[2]。它本質上是一個去中心化的資料庫,同時作為比特幣的底層技術。區塊鏈是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一次比特幣網路交易的信息,用於驗證其信息的有效性(防偽)和生成下一個區塊
區塊鏈的進化方式是:
?區塊鏈1.0——數字貨幣
?區塊鏈2.0——數字資產與智能合約
?區塊鏈3.0——IFMChain,區塊鏈正式鏈接移動終端