本系列文章:
java
第一章:九析帶你完爆 fabric - 快速搭建區塊鏈node
第二章:九析帶你完爆 fabric - 快速搭建 GO 環境python
第三章:九析帶你完爆 fabric - 快速上手 first-network 樣例編程
第四章:九析帶你完爆 fabric - 系統邏輯架構篇安全
目錄架構
1 前言編程語言
2 系統邏輯架構總覽分佈式
3 系統邏輯架構 - 接入層ide
4 系統邏輯架構 - 應用層函數
5 系統邏輯架構 - 區塊鏈層
6 總結
1 前言
前三章九析帶你輕鬆搭建了 GO 語言開發環境、並帶你運行了兩個 fabric 樣例程序( basic-network、first-network)。若是你按照教程都操做成功的話,那麼相信你已經有了一些碎片化的知識或者術語的積累。接下來咱們須要中止操做,作一些理論上的講解。
2 系統邏輯架構總覽
下圖是 hyperledger fabric 官方系統邏輯架構圖:
由架構圖可知,fabric 由上到下一共包括 3 層:接入層、應用層和區塊鏈層。
3 系統邏輯架構 - 接入層
接入層,也能夠稱做通訊層,定義外部訪問區塊鏈的方式,即:API、事件和 SDK。
API:即 gRPC(google remote procedure call),由於 fabric 是由 go 語言實現的,因此你想直接調用 fabric 提供的 API,那麼經過 gRPC 調用將是最直接的方式
SDK:一個好的平臺,應該提供多語言訪問支持,fabric 在 API 的基礎上封裝了多種編程語言的 SDK(go、nodejs、java、python 等),供開發者直接調用
事件:由於區塊鏈是分佈式應用,所以若是在某些場景下使用同步調用機制會致使系統性能或其餘問題。所以,接入層也提供了事件監聽機制,使得事件處理更加靈活
若是上面介紹依然讓你費解,我能夠給你一個場景類比一下。若是說區塊鏈是戶籍科,那麼你能夠有哪些方式來訪問戶籍科呢?
第一:你有熟人,你直接找她幫你輕鬆搞定(API)
第二:你能夠排隊叫號,而後到不一樣的服務窗口辦理相同的事情(SDK)
第三:若是你須要補辦身份證,你不會不吃不喝 10 個工做日,乾等在那裏。戶籍科能夠經過短信通知你處理流程或處理結果(事件)
4 系統邏輯架構 - 應用層
應用層,也就是你想經過區塊鏈作什麼具體事情,即:帳本、交易、身份確認。
帳本:訪問區塊鏈不少時候是爲了查詢信息,這些信息都是以交易的形式記錄在帳本中
交易:若是訪問區塊鏈是爲操做信息,那麼就須要經過交易操做來完成
身份:由於 fabric 提供了准入機制,因此當你查詢帳本或者發起交易,前提是須要通過區塊鏈的身份驗證
智能合約:智能合約就是定義交易的文本指令。你能夠類比智能合約是靜態的函數定義,而交易則是動態的函數調用
若是上面介紹依然讓你費解,我能夠給你一個擴大的場景類比一下。若是說區塊鏈仍是戶籍科,那麼你去戶籍科作哪些具體事情呢?
第一:開證實。好比你公司要你開一個戶籍證實,你須要去戶籍科作查詢(帳本)
第二:轉戶口。涉及到戶籍變動(交易)
第三:提供身份證。不管你是去戶籍科開證實也好,仍是轉戶口也好,都須要提供身份證自證身份(身份驗證)
第四:轉戶口規章。若是你要轉戶口,你必須按照固定的規章制度來執行。這個制度就是合約(智能合約)
5 系統邏輯架構 - 區塊鏈層
區塊鏈層就是真正的系統底層,通常狀況下,對上層只提供接口,並不暴露具體技術細節。整個區塊鏈底層提供的服務大致包括以下四個部分:成員服務、共識服務、鏈碼服務、安全和密碼服務。
安全和密碼服務:這是整個區塊鏈系統的最基礎服務,它也被其餘三個服務使用。它提供公私鑰加密機制、ECC橢圓曲線機制等等
成員服務:針對身份驗證應用提供的對應區塊鏈服務
鏈碼服務:針對智能合約服務提供的對應區塊鏈服務,好比提供鏡像倉庫、運行容器等等
共識服務:針對帳本和交易提供的對應區塊鏈服務。好比針對接入層交易提供擔保(背書)、針對接入層多個交易作排序、交易排序結果打包成區塊後通知給組織的錨節點,而後錨節點再經過 goosip 協議廣播給組織內的其餘 peer 節點、peer 節點收到區塊驗證經過後再同步到分佈式帳本中
若是上面介紹依然讓你費解,我能夠給你一個再擴大的場景類比一下。若是說區塊鏈不只僅是戶籍科,而是整個公安局了,那麼它怎麼開展平常工做呢?
第一: 信息中心覈實身份證(成員服務)
第二: 法務部門編寫各類合約,並確保合約正常執行(鏈碼服務)
第三: 按優先級處理治安案件,處理結果需通報全國各個機關處室,各地再通知本身內部體系,若是須要作調整,則須要記錄(共識服務)
第四:在公安局作事,必須保密(安全和密碼服務)
6 總結
以上即是 fabric 整個系統邏輯架構的大體說明,有關細節將在後續的章節中逐步展開。若是你以爲九析講得還能讓你勉強聽懂,就請勞駕點個贊吧。 ^_^