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
- 1.7
- fabirc error authorizing update: error validating ReadSet: readset expected key [Group] /Channel/AppErrorAPP
- Java:這是一份詳細&全面的HashMap 1.7 原始碼分析JavaHashMap原始碼
- KubeVela 1.7 版本解讀:接管你的已有工作負載負載
- HashMap1.7與1.8執行緒不安全講解HashMap執行緒
- JDK1.7-HashMap原理JDKHashMap
- jdk1.6,1.7,1.8解壓版無需安裝(64位)JDK
- Java集合——HashMap(jdk1.7)JavaHashMapJDK
- ConcurrentHashMap簡介(jdk1.7)HashMapJDK
- Julia 1.7 剛剛釋出
- Web(Cache)Browser v1.7Web
- JDK1.7HashMap死鎖JDKHashMap
- http協議/cookie詳解/session詳解HTTP協議CookieSession
- jdk-HashMap-1.7-補充文章JDKHashMap
- 1.7億農民工去哪了?
- 3、Flutter Tips - Flutter 1.7 釋出;Flutter
- Flutter 1.7 正式版釋出Flutter
- Java註解最全詳解(超級詳細)Java
- Java註解詳解Java
- Lombok 註解詳解Lombok
- @FeignClient註解詳解client
- Java 註解詳解Java
- ECharts 詳解Echarts
- Dialogment詳解
- hibernate詳解
- 詳解bind
- 詳解GOPATHGo
- nginx 詳解Nginx
- HTTP 詳解HTTP
- StreamingContext詳解GCContext
- JavaScript this詳解JavaScript
- promise詳解Promise
- DiskBasedCache詳解
- ReentrantLock詳解ReentrantLock
- Redis詳解Redis
- epoll詳解
- typeid詳解