1. 程式人生 > >1.7 初識區塊鏈:Fabirc詳解

1.7 初識區塊鏈:Fabirc詳解

  1. 專案概述 
    1. Fabric的目標是實現一個通脹的許可權區塊鏈的底層基礎框架。為了適用於不同的場合,採用了模組化結構,提供可切換和可擴充套件的元件,比如共識演算法、加密安全等服務
  2. 應用場景 
    1. 超級賬本有一個很重要的設計原則:按照“用例驅動”的方式實現,所有功能都應該有對應的用例需求。鑑於超級賬本是一個通用型框架,無法預先確定將來所有的應用場景、因此先定義出部分典型的用例,可使超級賬本先滿足這部分代表性的區塊鏈應用需求,然後再用可替換模組來滿足其他需求
    2. 場景 
      1. 金融資產管存
      2. 公司行為
      3. 供應鏈
      4. 主資料管理
      5. 分享經濟
  3. 專案架構 
    1. 底層服務構成 
      1. 身份服務 
        1. Fabric與比特幣、以太坊等無許可權區塊鏈網路最大的區別在於他有身份識別能力。
        2. 身份服務管理著系統中各種實體、參與者、物件的身份資訊,包括參與者的組織,驗證者,交易。賬本中的資產和智慧合約,系統元件以及執行環境。
      2. 策略服務 
        1. Fabric裡面有許多功能需要使用策略方式驅動,因此有獨立的策略服務來提供系統的策略配置和管理功能
        2. 策略服務最重要的是訪問控制和授權功能,Fabric交易通常需要參與方具有相關許可權才能進行
      3. 區塊鏈服務 
        1. 區塊鏈服務提供構建分散式賬本最基礎的能力,實現資料傳輸、共識達成等底層功能,並且提供了釋出/訂閱的事件管理框架
        2. 主要元件 
          1. P2P協議元件:提供區塊鏈節點之間直接雙向通訊的能力
          2. 分散式賬本元件:管理Fabric的區塊鏈資料
          3. 共識管理器元件:管理其它Fabric元件所使用的共識介面
          4. 賬本儲存元件:提供鏈外資料的持久化能力,每個鏈外文件的雜湊值儲存在區塊鏈上,從而保證資料的完整性
      4. 智慧合約服務 
        1. 智慧合約服務也叫鏈上程式碼,實質是在驗證節點上執行的分散式交易程式,用於自動執行特定的業務規則,最終更新賬本狀態 
        2. 上層結構 
          1. 程式設計介面(API)
          2. 軟體開發工具(SDK)
          3. 命令列工具(CLI)
  4. 部署方式 
    1. Fabric的網路節點由身份服務節點、驗證節點、非驗證節點以及應用節點組成
    2. 節點分類 
      1. 身份服務節點:負責發放和管理使用者及組織的身份,具體來說就是在註冊、交易、傳輸過程中使用的各類數字證書,以及區塊鏈相關的金鑰。
      2. 驗證節點:建立以及校驗交易,並且維護智慧合約的狀態。在執行交易時、需要和其它的多數驗證節點達成共識,然後才能更新本地賬本資料。每個驗證節點在本地都儲存一份賬本的副本。
      3. 非驗證節點:主要是接收客戶端的請求,組裝交易,並且發往驗證節點進行處理,類似於交易前處理器,不負責交易的實際執行。為了回事客戶端的查詢響應速度,非驗證節點在本地也保留一份賬本資料的拷貝。
      4. 應用節點:主要提供使用者端(瀏覽器或者移動裝置等)的後臺服務,在收到請求之後,把交易請求直接發往(或者由非驗證節點轉發)驗證節點處理
    3. Fabric有多種部署方式,既可以部署在自己的資料中心,也可以部署在公有云上。在部署的時候應該把通訊延遲、網路故障、節點失效、網路恢復、惡意攻擊等因素考慮在內
  5. 交易執行 
    1. 交易分類 
      1. 部署智慧合約
      2. 執行智慧合約
    2. 分發機制:Fabric客戶端可以通過API提交應用程式碼給任意一個驗證節點,該驗證節點在確認是有效的應用程式碼後,就會將該應用同步到其它驗證節點中。通過止方法,最終,每個驗證節點都會儲存一份應用程式碼
    3. 交易步驟 
      1. 客戶端傳送執行請求給任意一個驗證節點
      2. 驗證節點接收到請求之後 、向本地賬本傳送啟動交易的指令
      3. 驗證節點建立隔離的執行環境,啟動智慧合約程式碼
      4. 在應用的執行過程中、更新本地賬本的狀態
      5. 應用完成後、向本地賬本確認交易
      6. 驗證節點向其它的驗證節點廣播交易