1.7 Fabirc詳解
- 專案概述
- Fabric的目標是實現一個通脹的許可權區塊鏈的底層基礎框架。為了適用於不同的場合,採用了模組化結構,提供可切換和可擴充套件的元件,比如共識演算法、加密安全等服務
- 應用場景
- 超級賬本有一個很重要的設計原則:按照“用例驅動”的方式實現,所有功能都應該有對應的用例需求。鑑於超級賬本是一個通用型框架,無法預先確定將來所有的應用場景、因此先定義出部分典型的用例,可使超級賬本先滿足這部分代表性的區塊鏈應用需求,然後再用可替換模組來滿足其他需求
- 場景
- 金融資產管存
- 公司行為
- 供應鏈
- 主資料管理
- 分享經濟
- 專案架構
- 底層服務構成
- 身份服務
- Fabric與比特幣、以太坊等無許可權區塊鏈網路最大的區別在於他有身份識別能力。
- 身份服務管理著系統中各種實體、參與者、物件的身份資訊,包括參與者的組織,驗證者,交易。賬本中的資產和智慧合約,系統元件以及執行環境。
- 策略服務
- Fabric裡面有許多功能需要使用策略方式驅動,因此有獨立的策略服務來提供系統的策略配置和管理功能
- 策略服務最重要的是訪問控制和授權功能,Fabric交易通常需要參與方具有相關許可權才能進行
- 區塊鏈服務
- 區塊鏈服務提供構建分散式賬本最基礎的能力,實現資料傳輸、共識達成等底層功能,並且提供了釋出/訂閱的事件管理框架
- 主要元件
- P2P協議元件:提供區塊鏈節點之間直接雙向通訊的能力
- 分散式賬本元件:管理Fabric的區塊鏈資料
- 共識管理器元件:管理其它Fabric元件所使用的共識介面
- 賬本儲存元件:提供鏈外資料的持久化能力,每個鏈外文件的雜湊值儲存在區塊鏈上,從而保證資料的完整性
- 智慧合約服務
- 智慧合約服務也叫鏈上程式碼,實質是在驗證節點上執行的分散式交易程式,用於自動執行特定的業務規則,最終更新賬本狀態
- 上層結構
- 程式設計介面(API)
- 軟體開發工具(SDK)
- 命令列工具(CLI)
- 身份服務
- 底層服務構成
- 部署方式
- Fabric的網路節點由身份服務節點、驗證節點、非驗證節點以及應用節點組成
- 節點分類
- 身份服務節點:負責發放和管理使用者及組織的身份,具體來說就是在註冊、交易、傳輸過程中使用的各類數字證書,以及區塊鏈相關的金鑰。
- 驗證節點:建立以及校驗交易,並且維護智慧合約的狀態。在執行交易時、需要和其它的多數驗證節點達成共識,然後才能更新本地賬本資料。每個驗證節點在本地都儲存一份賬本的副本。
- 非驗證節點:主要是接收客戶端的請求,組裝交易,並且發往驗證節點進行處理,類似於交易前處理器,不負責交易的實際執行。為了回事客戶端的查詢響應速度,非驗證節點在本地也保留一份賬本資料的拷貝。
- 應用節點:主要提供使用者端(瀏覽器或者移動裝置等)的後臺服務,在收到請求之後,把交易請求直接發往(或者由非驗證節點轉發)驗證節點處理
- Fabric有多種部署方式,既可以部署在自己的資料中心,也可以部署在公有云上。在部署的時候應該把通訊延遲、網路故障、節點失效、網路恢復、惡意攻擊等因素考慮在內
- 交易執行
- 交易分類
- 部署智慧合約
- 執行智慧合約
- 分發機制:Fabric客戶端可以通過API提交應用程式碼給任意一個驗證節點,該驗證節點在確認是有效的應用程式碼後,就會將該應用同步到其它驗證節點中。通過止方法,最終,每個驗證節點都會儲存一份應用程式碼
- 交易步驟
- 客戶端傳送執行請求給任意一個驗證節點
- 驗證節點接收到請求之後 、向本地賬本傳送啟動交易的指令
- 驗證節點建立隔離的執行環境,啟動智慧合約程式碼
- 在應用的執行過程中、更新本地賬本的狀態
- 應用完成後、向本地賬本確認交易
- 驗證節點向其它的驗證節點廣播交易
- 交易分類
-
學院Go語言視訊主頁
https://edu.csdn.net/lecturer/1928 -
掃碼獲取海量視訊及原始碼 QQ群:721929980
相關文章
- java JDK1.7版本新特性詳解JavaJDK
- 集合詳解(二)----ArrayList原始碼剖析(JDK1.7)原始碼JDK
- 《HTML5canvas開發詳解(第2版)》——1.7 用console.log除錯HTMLCanvas除錯
- Java:這是一份詳細&全面的HashMap 1.7 原始碼分析JavaHashMap原始碼
- KubeVela 1.7 版本解讀:接管你的已有工作負載負載
- HashMap1.7與1.8執行緒不安全講解HashMap執行緒
- hadoop 2.7.1 jdk 1.7 時區問題以及解決方案.HadoopJDK
- JDK1.7-HashMap原理JDKHashMap
- scip習題1.7解答
- jdk1.6,1.7,1.8解壓版無需安裝(64位)JDK
- fabirc error authorizing update: error validating ReadSet: readset expected key [Group] /Channel/AppErrorAPP
- JDK1.7HashMap死鎖JDKHashMap
- Julia 1.7 剛剛釋出
- Web(Cache)Browser v1.7Web
- Java集合——HashMap(jdk1.7)JavaHashMapJDK
- Django 1.7 alpha 1 釋出Django
- Java 1.7 裡有什麼?Java
- Chapter 1 Arrays and Strings - 1.7APT
- http協議/cookie詳解/session詳解HTTP協議CookieSession
- Flutter 1.7 正式版釋出Flutter
- Centos7 安裝jdk 1.7CentOSJDK
- jdk-HashMap-1.7-補充文章JDKHashMap
- Golang1.7 Goroutine原始碼分析Golang原始碼
- linux 安裝JDK1.7LinuxJDK
- jdk1.7 command下載JDK
- Django 1.7 正式版釋出Django
- Project facet Java version 1.7 is not supported.ProjectJava
- ConcurrentHashMap簡介(jdk1.7)HashMapJDK
- Lombok 註解詳解Lombok
- Java註解詳解Java
- Java 註解詳解Java
- Java註解最全詳解(超級詳細)Java
- HiveQL詳解Hive
- 詳解Inode
- Vuex詳解Vue
- PWA詳解
- 詳解CountDownLatchCountDownLatch
- DiffUtil詳解