當前位置:股票大全官網 - 基金投資 - 結構對等節點分析

結構對等節點分析

Hyperledger Fabric,也稱為super ledger,由IBM發起,後來成為Linux基金會Hyperledger中的區塊鏈項目之壹。

Fabric是壹個提供分布式分類帳解決方案的平臺,底層分類帳數據存儲使用區塊鏈。區塊鏈平臺通常可以分為公鏈、聯盟鏈和私有鏈。公鏈的典型代表是比特幣等開放的區塊鏈網絡,任何人都可以加入這個網絡。聯盟鏈有接入機制,不能隨意入網。聯盟鏈的典型例子是面料。

Fabric的性能更好,因為它不需要發行硬幣來激勵參與者,也不需要挖礦來阻止人們作惡。在光纖網絡中,也有許多不同類型的節點組成網絡。其中,Peer node承載書籍和智能合約,是整個區塊鏈網絡的基礎。本文將詳細分析Peer的結構和運行模式。

在本文中,假設讀者已經理解了區塊鏈和智能合同等概念。

本文基於織物1.4升..

區塊鏈網絡是分布式網絡,Fabric也是。因為Fabric是壹個聯盟鏈,需要接入機制,所以網絡結構會復雜很多。這是壹個簡化的結構網絡:

每個元素的含義如下:

對於光纖網絡,外部用戶需要通過客戶端應用程序訪問網絡,即圖中的A1、A2或A3,客戶端應用程序需要通過CA證書標識自己,才能訪問光纖網絡的授權部分。

在上面的網絡中,* * *有四個組織,R1,R2,R3和R4。R4是整個光纖網絡的創建者,該網絡是根據NC4配置的。

在Fabric網絡中,不同的組織可以組成聯盟,不同聯盟之間的數據通過通道隔離。渠道中的數據只能被聯盟中的組織訪問,每個新的渠道都可以被視為壹個新的鏈。與其他通常只有壹個鏈的區塊鏈網絡不同,Fabric可以通過Channel在網絡中快速構建壹個新的區塊鏈。

以上R1和R2結盟,在C1上交易。R2還與R3結盟,在C2進行交易。R1和R2在C1上交易時,對R3不可見,R2和R3在C2上交易時,對R1不可見。通道機制提供了良好的隱私保護能力。

訂購者節點由整個光纖網絡所有,用於對所有交易進行分類和打包。例如上述網絡中O4節點。本文不再詳細描述Orderer節點,該功能可以理解為比特幣網絡中的挖掘過程。

對等節點代表網絡中的節點。通常,壹個同行代表壹個組織。Peer是整個區塊鏈網絡的基礎,也是智能合約和書籍的載體。同行也是本文的重點。

壹個對等節點可以承載多套賬簿和智能合約,比如P2節點,不僅維護C1的賬簿和智能合約,還維護C2的賬簿和智能合約。

為了更深入地了解對等節點的作用,首先要了解Fabric的整體事務處理過程。整體交易流程圖如下:

對等節點根據功能可以分為背書節點和記賬節點。

客戶端將向背書節點提交交易請求,背書節點將開始模擬交易的執行。模擬執行後,背書節點不會更新賬簿數據,而是對交易進行加密簽名後返回給客戶端。

收到這個響應後,客戶端會將響應提交給Orderer節點,Orderer節點會對這些交易進行排序,打包成塊,然後分發到bookkeeping節點,bookkeeping節點會對交易進行驗證,驗證後記錄在分類帳中。

壹筆交易能否成功是根據背書策略指定的,每個智能合約都會指定壹個背書策略。

對等節點代表聯盟鏈中的所有組織,區塊鏈網絡也是由對等節點組成,也是賬簿和智能合約的載體。

通過對上述交易過程的了解,我們可以知道對等節點是主要參與者。如果用戶想要訪問分類帳資源,他們必須與對等節點進行交互。在壹個對等節點中,可以同時維護多個賬簿,這些賬簿屬於不同的渠道。每個對等節點將維護壹組冗余賬簿,從而避免單點故障。

對等節點根據在交易中的角色不同可以分為背書者和委托者,背書者將模擬交易,委托者將數據實際存儲在賬簿中。

總帳可以分為兩部分,壹部分是區塊鏈,另壹部分是當前狀態,也稱為世界狀態。

區塊鏈只能追加,過去的數據不能修改。該鏈還包含兩部分信息,壹部分是通道的配置信息,另壹部分是不可修改的序列化記錄。每個塊記錄前壹個塊的信息,然後將它們鏈接在壹起,如下圖所示:

第壹個塊稱為genesis塊,其中不存儲任何事務信息。每個塊可以分為塊頭、塊數據和塊元數據。塊頭存儲了當前塊的塊號、當前塊的哈希值和前壹塊的哈希值,這樣就可以連接所有的塊。塊數據包含事務數據。塊元數據包括塊寫入的時間、寫入者和簽名。

每個事務的結構如下。在標題中,包含了鏈碼的名稱和版本信息。簽名是發起交易的用戶的簽名。建議書主要有壹些參數。響應是智能合同執行的結果。背書是背書結果返回的結果。

總賬的當前狀態在WorldState中維護,數據以Key-Value的形式存儲,可以快速查詢和修改。WorldState的每次修改都會被記錄在區塊鏈中。WorldState中的數據需要依賴外部存儲,通常使用LevelDB或CouchDB。

區塊鏈和WorldState構成了壹個完整的賬本。世界狀態確保業務數據的靈活變化,而區塊鏈確保所有的修改都是可追蹤的,不能被篡改。

交易完成,數據寫入賬簿後,需要將這些數據同步到其他對等方。Fabric中使用了Gossip協議。Gossip也是通道隔離的,只在通道內廣播和同步對等體中的賬本數據。

智能合約需要安裝在對等節點上,智能合約是訪問圖書的唯壹途徑。智能合約可以用Go、Java等語言編寫。

智能合約編寫完成後,需要打包成鏈碼,每個鏈碼可以包含多個智能合約。需要安裝ChainCode,並且需要在對等節點上安裝ChainCode。安裝後需要在渠道上實例化ChainCode,實例化時需要指定背書策略。

智能合同可以在實例化後用於與賬簿進行交互。流程圖如下:

用戶編寫並部署實例化的智能合約後,可以通過客戶端應用程序向智能合約提交請求,智能合約將獲取、放置或刪除WorldState中的數據。其中,get操作直接從WorldState中讀取事務對象的當前狀態信息,不在區塊鏈上寫入信息。但是,put和delete操作不僅會修改WorldState,還會在區塊鏈上寫入壹個事務信息,並且該事務信息不可修改。

區塊鏈上的信息可以通過智能合約訪問,也可以通過客戶端應用程序中的API直接訪問。

事件是客戶端應用程序與結構網絡交互的壹種方式。客戶端應用程序可以訂閱該事件,當事件發生時,客戶端應用程序將收到消息。

事件源有兩種,壹種是智能合約下發的事件,壹種是賬簿變更觸發的事件。用戶可以從事件中獲得事務信息,比如塊的高度。

本文首先介紹了Fabric的整體網絡架構,通過對Fabric事務處理過程的分析,討論了對等節點在事務處理中的作用。然後,詳細分析了對等節點維護的賬簿和智能合約,分析了對等節點維護賬簿和執行智能合約的過程。

文/雷軍

[1]/zh/technologies/區塊鏈/series/OS-academy-hyperledger-fabric/

[3]https://en.wikipedia.org/wiki/Gossip_protocol