當前位置:首頁 » 區塊鏈知識 » fabric查看區塊鏈

fabric查看區塊鏈

發布時間: 2023-05-25 03:11:44

㈠ 使用 AWS 區塊鏈模版搭建 Hyperledger Fabric

AWS 區塊鏈模版號稱可以在幾分鍾內完成創建並部署區塊鏈網路。

使用 AWS 區塊鏈模版可以搭建兩種類型的區塊鏈網路:

具體搭建步驟可以參考 AWS Blockchain Templates 開發人員指南 ,裡面有關於搭建 Ethereum 的詳細步驟,文檔中的 「先決條件」 設置項是用於搭建 Ethereum 網路的,對 Fabric 網路並不適用,所以這里說一下搭建超級賬本的 Fabric。

在使用模版快速創建堆棧前,務必要提前設置好的相關內容:

說明:

以上的5個前提條件設置正確了,我們就可以用區塊鏈模版創建 Fabric 網路了,下面具體說一下畫紅框的比較難的兩個配置:

設置步驟:

點擊右下角的 「Review Policy」 ,設置這個許可權策略文件的名稱(myFabricPolicy)和描述(...),最後點擊 「Create Policy」

設置如下:

AWS控制台——服務——VPC——在VPC控制面板中點擊藍色的按鈕「 Launch VPC Wizard 」,選擇帶有單個公有子網的 VPC:

設置 VPC 名稱、子網名稱,其他值為默認值。

在 AWS Blockchain Templates 開發人員指南 的Hyperledger Fabric 部分點擊啟動鏈接:

設置參考如下:

創建之後,喝一杯咖啡☕️等一會兒...

等狀態顯示為「 CREATE_COMPLETE 」就OKK了。🎉🎉🎉

㈡ 火爆!5分鍾創建並玩轉屬於自己的區塊鏈


區塊鏈今年發展真是飛快!從最初一個陌生的概念,到如今已經在各個行業起步,星星之火大有燎原之勢。真希望能擁有自己的區塊鏈練練手!可是一個人、一台電腦,怎麼才能搭起來區塊鏈環境火到不梁飢廳行的區塊鏈,想說愛你不容易!


Don』t Worry! 小編已經沉迷於區塊鏈和智能合約不可自拔!現在就手把手帶你從零開始,5分鍾玩轉屬於自己的區塊鏈!~
IBM中國研究院開發的超能雲(SuperVessel)平台提供了給區塊鏈愛好者、開發者的區塊鏈開發測試環境。通過該平台,用戶能夠免費、超快速創建基於Hyperledger Fabric的多節點區塊鏈、並在自己的鏈上花式玩轉智能合約。
----
0.
准備工作
只需要你的本地瀏覽器即可!
1. 注冊一個賬號
訪問超能雲(SuperVessel)區塊鏈服務的公測地址:8800/bc。
點擊右上角Log in(登錄)按鈕,在彈出的窗口中點擊Register(注冊),填寫郵箱和密碼後提交。此時建議去郵箱查看激活郵件,並激活自己的賬號(小編提示:懶的激活也沒關系,只是某些高級服務必須激活後才能使用哦)。
2.
快速創建自己的區塊鏈
注冊完成後,回到主頁,點擊偌大的GIVE ME A BLOCKCHAIN(給我一個區塊鏈!)按肢啟鈕。在彈出框橡隱中選擇你想要的Consensus Plugin(共識插件)和Size(區塊鏈網路節點數量)。
小編備註:目前可選Hyperledger Fabric官方提供的兩種共識插件:noops和pbft。
點擊Submit(提交)後,幾秒後就能得到自己的區塊鏈,並自動進入監控面板。沒錯,拿到一個屬於自己的區塊鏈就是這么簡單!
進入監控面板後可以看到,左側是智能合約管理面板,包括對智能合約的管理和部署;右側是網路面板,展示申請到的區塊鏈網路情況,拓撲、節點之間的延遲信息等一目瞭然;點擊右上角的望遠鏡圖標,則可以實時監控各節點的日誌信息。最下方是區塊鏈面板,展示當前區塊鏈的整體情況,初始狀態下只有一個區塊。
3. 部署和使用智能合約
接下來,小編教你如何在自己的區塊鏈上部署和使用智能合約。
在智能合約管理面板的Smart Contracts(智能合約)標簽下列出了2個智能合約作為示例,分別為map和chaincode_example02。其中map合約可以實現鍵值對(key-value)的存儲,chaincode_example02合約可以模擬兩個人的轉賬和查詢。
小編備註:這2個示例合約的代碼可在Hyperledger Fabric源碼中找到。
以部署和使用chaincode_example02合約為例:
部署合約
點擊chaincode_example02合約對應的Deploy(部署)按鈕,並填寫合約的初始化值,包括合約名、初始函數、初始參數。該合約初始函數為init,初始參數需按格式填寫,如[「a」,」100」,」b」,」200」]表示注冊兩個人a和b,分別給他們100單位和200單位。
點擊Deploy按鈕,該合約將部署在你的區塊鏈中,該過程大約需要20~40秒時間。當區塊鏈面板出現一個新區塊,通常表示合約已部署完成。
調用合約
部署完成後,在智能合約管理面板的My Deployment(我的部署)標簽下查看已部署的合約實例。
點擊Action下方的Invoke按鈕調用智能合約,並填寫調用的方法名和相應參數(不同合約的方法名和參數含義不同,具體與合約內容相關哦)。如對該合約,調用invoke方法名,填寫參數[「a」,」b」,」50」],表示a給b轉50個單位。
點擊Submit完成調用後,可以查看區塊鏈情況,此時會生成新的區塊。


查詢合約
調用完成後,接下來你可以查詢合約執行結果。仍然在My Deployment標簽下,點擊Action下方的Query按鈕查詢智能合約,並填寫查詢的方法名和相應參數。如選擇query方法名,填寫參數[「a」],表示查詢a的當前單位。
點擊Submit後可以看到a的當前單位為50。你可以再去查詢b試試看!
OK,接下來你可以繼續操作該合約,觀察區塊鏈情況,或者在該區塊鏈上再部署一個新智能合約,比如map。為了方便使用,部署、調用和查詢合約的方法名和參數格式都默認填好了,你只需選擇一個方法名,照貓畫虎改改參數就好!看看你能把鏈玩到多長~
4. 上傳並測試自己的私有智能合約
除了目前提供的兩個公有智能合約,你還可以上傳並測試自己的私有合約!私有合約只有自己能看到。
在Smart Contracts標簽下點擊Import private smart contract。
填寫合約名和描述,並上傳合約代碼文件後,點擊Import,完成上傳。
之後Smart Contracts列表裡便出現我上傳的合約,可以像前文一樣進行部署、調用和查詢了。

㈢ Hyperledger Fabric 介紹幾個關鍵配置文件(三)

configtx.yaml是Hyperledger Fabric區塊鏈網路運維工具configtxgen用於生成通道創世塊或通道交易的配置文件,configtx.yaml的內容直接決定了所生成的創世區塊的內容。
configtx.yaml主要用到了以下YAML語法:

當byfn.sh腳本執行networkUp啟動網路時,會調用generateChannelArtifacts創建Orderer通道的創世區塊,應用通道配置配置交易文件channel.tx。根據不同的共識機制,傳入不同的profile參數。

Profiles配置段用來定義用於configtxgen工具的配置入口。包含consortium的配置入口,可以用來生成排序節點的創世區塊。如果在排序節點的創世區塊中正確定義了consortium 的成員,那麼可以僅使用機構成員名稱和委員會的名稱來生成通道創建請求。

Capabilities段定義了fabric程序要加入網路所必須支持的特性。通過定義通道的能力,就明確了不滿足該能力要求的fabric程序,將無法處理 交易,除非升級到新的版本。

Organizations配置段用來定義組織機構實體,以便在後續配置中引用。

Fabric主要通過策略(Policy)來控制各種場景下訪問這些資源的許可權限制。Fabric實現了兩種寬弊類型的Policy來滿足不同的場景需求:

Orderer配置段用來定義要編碼寫入創世區塊或通道交易的排序節點參數。

Channel配置段用來定義要寫入創世區塊或配置交易的通道參數。

Application配置段用來定義要寫入創轎巧核世區塊或配置交易的應用參數。

core.yaml配置文件閉掘是Peer節點的示例配置文件,該core.yaml示例配置文件中共指定了六大部分內容。

㈣ 區塊鏈和HyperLedger Fabric(五)共享賬本

peer ledger:存儲在背書節點和記賬節點
orderer ledger:存儲在order service node

Chaincode是無狀態的。Chaincode存儲在節點上,賬本只會存儲hash值

賬本的隔離和隱私性用多通道(Multiple Channels)技術來保護

Query System Chaincode(QSCC)
背書節點需提前設定,也作為記賬節點

transaction事務處理流1.X
• client應用(向一個或多個Peer節點(背書節點))發送交易請求(對事務的背書請求);
• 背書節點模擬執行ChainCode,但並不將結果提交到本地賬本(World state,不會修改底層賬本),只是將結果(讀寫集)加密簽名返回給client應用;
• 應用收集所有背書節點的結果後,驗證背書策略是否滿足和模擬執行結果是否一致(去除不確定無效的交易,1.0未實現)將結果廣播給Orderers;
• Orderers執行共識過程,並生成Block,通過消息通道批量的將Block發布給Peer節點(記賬節點);
• 各個Peer節點驗證交易,並提交到本地賬本中.通知client端處理結果

記賬節點Committing Peer:維護賬本和狀態
合約部署都需要指定背書策略。AND,OR,OutOf
背書策略在chaincode實例化時指定
ESCC
VSCC
賬本保存Blockchain和World state(維護當前狀態,方便應用快速查詢)
Block(s):Block header(Block number,當前區塊hash,前區塊hash),Block data,Block Metadata(寫入時間,寫入人,簽名)
transactions:header(名字,version),簽名,proposal(input參數),Pesponse(執行結果前後的數據),Endorsements(背書節點返回的結果list)
World State:kv形式。維護賬本當前信息
Smart Contract:業務角度。定義組織的業務規則,創建交易,記錄到賬本,打包進chaincode。操作World state DB:get,put,delete(put和delete會增加新的記錄,block。只會刪除world state的數據,在賬本里新增記錄)
chaincode可以包含多個合約,實現打包的角度

Chaincode Lifecycle
打包(簽名,)--安裝(peer)--實例化--運行
更新--運行
一個peer可以安裝多個chaincode

System Chaincode
運行在peer上,LSCC(Lifecycle),CSCC(配置),QSCC(查詢)

Peer
Leader Peer:連接order推送新的區塊,隨機傳播其它記賬節點。選舉方式(靜態指定,動態生成)。一個分區一個leader。
Anchor Peer:(Gossip協議,降低order負擔)節點相互認識。
共識:讀寫集

網路搭建:
1.配置啟動order Service
2.配置啟動peer
3.安裝chaincode
4.創建channel
5.加入channel
6.實例化chaincode

㈤ 淺析 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

㈥ 區塊鏈之聯盟鏈(三) 認識Fabric

Fabric 是超級賬本聯盟推出的核心區塊鏈框架,它適合在復雜的企業內和企業間搭建聯盟鏈。根據超級賬本聯盟的目標, Fabric 被建設為一個模塊化的、支持可插拔組件的基礎聯盟鏈框架。;

以太坊系的Quorum不同,Fabric從一開始就只考慮企業間的應用。其獨有的channel概念,將企業根據業務目的不同以不同的子網連接起來, 每一個子網對應一個channel,而每個channel有自己獨立的區塊鏈。而Quorum很顯然是只有一個公網(所有企業節點都加入進去),企業與企業間的私有業務是通過Private Manager 完成的。

理解channel的最簡單方法就是,將它類比為一個消息服務提供的Topic,實際上Fabic最早就是基於Kafka 的分布式消息服務來實現。

       在Fabric網路中,一個企業可以有一個或多個節點加入整個聯盟鏈;一個企業可以加入1個或者多個Channel(子網);  一個節點可以加入1個或者多個channel。每個channel構成一個子網,所以Fabric 是 一種由子網組成的網路。

那麼Fabric是怎麼實現智能合約的執行和完成業務上鏈(將事務結果記錄在區塊鏈里)的呢?

與其它框架不同, Fabric 將整個過程分成了三個階段:

業務背書階段 : 客戶的請求發送的背書節點,通過智能合約完成業務的計算(但不更新狀態),並完成背書;將背書結果返回個客戶端。

業務的排序階段 : 客戶端將背書結果通過Channel被發送到排序節點(orderer),在排序節點完成事務的排序,並打包到block里,最後下發給所有連接到channel的節點。

業務驗證並寫入賬本階段 : 通過Gossip 網路,所有Channel的節點都會接收到新的block,節點會驗證block中的每一個事務,確定是否有效:有效地將會跟新world state,無效的將會標志為「無效」,不會更新World state,但整個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(External of Account), EOA的載體是錢包。我們沿用這個概念,來看看Fabric是如何實現用戶和發起事務的。Fabric中EOA是一個CA中心發布的certificate(x.509),一個Certificate代表一個Identity(這與以太坊還是有很大區別的, 以太坊中一個EOA其實是一個hash地址),EOA能夠參與的channel以及被授權的操作是有channel的MSP( Membership Service  Provider)決定的(如下圖)。

註:certificate 是一種密碼學上驗證身份的通用做法; certificate包含了個人的信息,公鑰以及發布這個certificate的CA的簽名。驗證方只需要擁有這個CA的證書(包含CA的公鑰),就可以驗證這個簽名是否正確,certificate的內容是否有篡改。簡單的說,通過CA和Certificate,我們可以獲得一個可驗證的的身份和信任鏈。

      如上圖,fabric中通要使用Wallet作為EOA的載體,一個Wallet中可以包含多個Identity(x.509 certificate)。 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)。這個背書響應中通常包含World state 的讀集合,寫集合, 以及節點對本次交易的簽名。這里與以太坊系聯盟鏈最主要的不同是: 背書階段只模擬交易,並不真正更新交易結果。 而真正更新交易在第三階段完成。背書節點最後將生成的背書響應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

㈦ 區塊鏈平台有哪些

區塊鏈平台,是要看區塊鏈資訊的嗎,這里安利個 密碼財經,一般鏈圈幣圈dapp等信息都能看到。

㈧ 超級賬本之——Fabric

目前超級賬本下面有5個並行的項目,Fabric屬於其中較為成熟的一個。這個項目由,來自28個不同組織的159名工程師參與開發。

在Fabric的區塊鏈網路中,有四類節點:MSP,Ordering Node,Endorsing Peer,Commtting Peer

MSP(Membership Service Provider), 這類節點主管區塊鏈網路中其他的節點的授權,准入,踢除。通過給不同節點頒發證書的方式,授予不同類型的節點相應的許可權。

中文可以稱作排序節點。通常在一個網路中至少有一個或多個排序節點,這類節點負責 按照指定的演算法,將交易進行排序,並返回給Committing Peer。其並不關心具體的交易細節。

這類節點的主要負責接收交易請求,驗證這筆交易之後,並做一些預處理之後,並將簽名後的數據傳回給客戶端。

這類節點做是區塊鏈網路中的全節點,它們需要記錄完整的區塊信息,並且驗證每筆交易的正確性,是最終將交易打包進區塊鏈的節點。

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

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

2,預處理通過之後,將簽名數據,傳回給客戶端。

3,客戶端發起請求,將收到的簽名數據傳給Ordering Node。

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

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

6,最後將交易結果返回給客戶端。

6,中間過程的每一步,都伴隨著許可權的驗證。會根據MSP頒發的證書,進行判斷。

㈨ 初識Hyperledger Fabric

Fabric是聯盟鏈,Peer代表一系列組織,Peers是整個區塊鏈網路的基礎,因為它是賬本和智能合約的載體。通過智能合約,賬本通過不可篡改的方式記錄了交易的全過程。

對於不能的公司來說,是有不同的業務的,不同的業務又與不同的公司相關聯,需要創建多個聯盟鏈,因此就需要創建多個channel,channel是多個特定成員之間以機密交易為目的建立的私網,一個peer可以加入多個channel,每個channel維護自己的賬本,賬本和賬本之間是隔離的,每個channel可以維護一個或多個賬本。所以為了滿足復雜的交易需求,每個peer上可以安裝不同的智能合約,當peer交易完成時,會發送事件通知Client。peer上還有一個Local MSP(成員服務提供器)服務,提供身份認證和加密簽名等功能。

WorldState 以key-value的形式,維護著當前賬本的當前信息。

智能合約(Smart Contract)是區塊鏈的核心,定義了各個不同組織間的業務規范,創建交易並記錄在賬本里。多個智能合約可以打包到一個鏈碼中。只有鏈碼(Chaincode)部署之後,智能合約才能被應用使用。

不同於一般的鏈碼運行在一個獨立的容器,系統鏈碼運行在peer進程上,實現了一些系統行為。

Fabric為了優化網路性能,提高安全性和可擴展性,將每個交易分到 Endorsing Peer Ording-Service Committting Peer 三個部分,這就需要一種安全的,可信的和可擴展的數據傳輸協議——Gossip Protocol。 Gossip 傳輸協議以隨機的方式將信息散播到網路中,主要執行三個功能:

熱點內容
f2pool怎麼挖ltc 發布:2025-06-22 14:09:14 瀏覽:767
比特幣挖礦產量和什麼有關 發布:2025-06-22 14:08:36 瀏覽:885
幣圈熊市該怎樣做 發布:2025-06-22 13:17:30 瀏覽:470
老人玩幣圈 發布:2025-06-22 13:14:48 瀏覽:297
哪些公司有用區塊鏈 發布:2025-06-22 13:06:30 瀏覽:552
區塊鏈技術相關法規 發布:2025-06-22 12:50:03 瀏覽:360
區塊鏈活躍的排名 發布:2025-06-22 12:48:28 瀏覽:100
trx4可以調軸距嗎 發布:2025-06-22 12:13:21 瀏覽:700
你對比特幣是怎麼認識和理解的 發布:2025-06-22 12:12:37 瀏覽:353
元宇宙多久到來 發布:2025-06-22 12:04:55 瀏覽:427