Hyperledger Fabric基礎知識

Hyperledger Fabric基礎知識前端

本文咱們會介紹Hyperledger Fabric的基礎知識,並瞭解如何充分利用這個多功能的區塊鏈框架。node

區塊鏈技術爲創新提供了豐富的機會。它提供了一種新的交易方式,從而能夠從根本上改變業務的實現。數據庫

那麼,在衆多的區塊鏈框架中,開發人員應該首先掌握哪一個框架呢?IBM開發的Hyperledger Fabric確定是最佳選擇,尤爲在今天這個公鏈應用不明朗的狀況下,使用Fabric開發聯盟鏈應該是最多見也最實用的框架了。編程

Hyperledger是一種開源協做成果,旨在促進跨行業的區塊鏈技術供企業使用。該全球合做由The Linux Foundation主持。後端

Hyperledger孵化並支持一系列區塊鏈業務技術,框架,庫和應用程序。 Hyperledger項目託管了多個區塊鏈框架,包括Hyperledger Fabric。本文概述了什麼是Hyperledger Fabric,如何使用它來構建解決方案以及如何在Hyperledger Fabric中執行事務。安全

什麼是Hyperledger Fabric?

Hyperledger Fabric是用於私有鏈和聯盟鏈業務網絡的開源框架實現,其中成員身份和角色對於其餘成員是已知的。它是一種模塊化的架構。它容許帳本數據庫,共識機制和成員資格服務等組件即插即用。它使用了容器技術,從而提供了企業級的網絡安全性,可伸縮性和機密性。網絡

Hyperledger Fabric網絡具備如下組件:架構

  • Assets。資產是任何有價值的東西。資產具備狀態和全部權。資產在Hyperledger Fabric中表示爲鍵值對的集合。
  • Shared ledger。共享帳本記錄資產的狀態和全部權。共享帳本包括兩個部分:併發

    • world state描述了給定時間點的共享帳本狀態。這是共享帳本的數據庫。
    • blockchain是記錄全部交易的交易日誌歷史記錄。
  • Smart contract。 Hyperledger Fabric智能合約稱爲chaincode。 Chaincode是定義資產和相關交易的軟件;換句話說,它包含系統的業務邏輯。當應用程序須要與共享帳本交互時,將調用Chaincode。鏈碼能夠用Golang或Node.js編寫。
  • Peer nodes。Peer是網絡的基本元素,由於它們託管共享帳本和智能合約。Peer執行鏈碼,訪問共享帳本數據,承認交易並與應用程序對接。Peer能夠是endorsing peers,也能夠是endorsers。每一個鏈碼均可以指定背書策略,該政策定義了有效交易背書的必要條件和充分條件。
  • Channel。通道是由peers集合造成的邏輯結構。此功能容許一組peers建立單獨的交易共享帳本。
  • Organizations。 Hyperledger Fabric網絡是由網絡中不一樣組織擁有和貢獻的peers構建的。該網絡之因此存在是由於組織將其我的資源貢獻給了集體網絡。peers具備成員資格服務提供商從其所屬組織分配的身份(數字證書)。不一樣組織的Peers能夠在同一channel上。
  • Membership Services Provider (MSP)。 MSP是證書頒發機構,以管理用於認證成員身份和角色的證書。在Hyperledger Fabric網絡中,全部的節點必需要有認證過的身份才能進行交易。MSP管理用戶ID並驗證網絡上的全部參與者,從而使Hyperledger Fabric成爲一個私有的和准入的網絡。
  • Ordering service。Ordering service將交易打包成塊,以交付給通道上的peers。它保證了網絡中的交易順利執行。它與peers和endorsing peers進行通訊。Ordering service目前只支持Solo和Kafka。

下圖是Hyperledger Fabric的組件和構成:框架

Hyperledger架構是怎麼工做的?

在Hyperledger解決方案中,Hyperledger Fabric網絡充當後端,而應用程序前端則與網絡進行通訊。 SDK可幫助您在前端和後端之間創建通訊,例如Node.js SDK和Java SDK。 SDK提供了一種執行用戶鏈碼,在網絡中執行事務,監視事件等的方法。

要編寫區塊鏈應用程序,您須要:

  1. 用受支持的編程語言(例如Go)編寫chaincode。
  2. 在Hyperledger Fabric網絡上部署鏈碼。
  3. 使用SDK開發客戶端應用程序。

Hyperledger交易如何執行

Hyperledger Fabric網絡中事務的請求流以下所示:

  1. 客戶端使用Node.js或Java™SDK鏈接到Hyperledger Fabric網絡。客戶端使用SDK API,建立一個事務並將其發送給背書peer。
  2. endorsing peer會驗證客戶的簽名,模擬交易併發送背書籤名。
  3. 若是交易獲得承認,則客戶將交易提交給ordering service。不然,交易被取消。
  4. ordering service將交易傳遞給peers。全部peers都提交併應用相同的事務序列並更新其狀態。

總結

Hyperledger Fabric是一個區塊鏈框架實現。 你能夠很輕鬆的使用Hyperledger來構建一個私人或聯盟網絡,併爲其編寫智能合約。

固然Hyperledger相對其餘的區塊鏈框架而言仍是比較複雜的,由於它是專爲企業級應用而生的。後面咱們會詳細講解。

更多教程請參考 flydean的博客

相關文章
相關標籤/搜索