Hyperledger Fabric模型
本節概述了編入Hyperledger Fabric的關鍵設計特性,實現了對全面但可定製的企業區塊鏈解決方案的承諾:
- 資產 – 資產定義為可以通過網路交換幾乎任何具有貨幣價值的東西,從整個食品到古董車到貨幣期貨。
- 鏈碼 – 鏈碼執行與交易排序分開,限制了跨節點型別所需的信任和驗證級別,並優化了網路可擴充套件性和效能
- 分類賬特性 – 不可變的共享分類帳為每個通道編碼整個交易歷史記錄,幷包括類似SQL的查詢功能,以便進行有效的審計和爭議解決。
- 隱私 – 通道和私有資料集合使私有和機密的多邊交易成為可能,這些交易通常是相互競爭的企業和受監管的行業在共同的網路上交換資產所需要的。
- 安全和成員資格服務 – 許可成員資格提供了可靠的區塊鏈網路,參與者知道所有交易都可以由授權的監管機構和審計員進行檢測和跟蹤。
- 共識 – 一種獨特的共識方法可實現企業所需的靈活性和可擴充套件性。
資產
資產範圍從有形(房地產和硬體)到無形(合約和智慧財產權),Hyperledger Fabric提供使用鏈碼交易修改資產的能力。
資產在Hyperledger Fabric中表示為鍵值對的集合,狀態更改記錄為通道分類帳上的交易,資產可以用二進位制和/或JSON格式表示。
你可以使用Hyperledger Composer工具在Hyperledger Fabric應用程式中輕鬆定義和使用資產。
鏈碼
鏈碼是定義一個資產或很多資產的軟體,以及修改資產的交易指令;換句話說,這是業務邏輯。鏈碼是執行讀取或更改鍵值對或其他狀態資料庫資訊的強制規則,鏈碼函式針對分類帳的當前狀態資料庫執行,並通過交易提案發起,鏈碼執行導致一組鍵值寫入(寫入集),這些寫入可以被提交給網路並應用於所有對等點上的分類帳。
分類賬特性
在fabric,分類帳是所有狀態轉換的有序、防篡改的記錄,狀態轉換是參與方提交的鏈碼呼叫(“交易”)的結果,每個交易都會生成一組資產鍵值對,這些鍵值對作為建立,更新或刪除提交到分類帳。
分類帳由區塊鏈(“鏈”)組成,用於以塊的形式儲存不可變的順序記錄,以及用於維護當前fabric狀態的狀態資料庫。每個通道有一個分類帳,每個對等點為其所屬的每個通道維護一個分類帳的副本。
Fabric分類帳的一些功能:
- 查詢和更新分類帳使用基於鍵的查詢,範圍查詢和組合鍵查詢
- 只讀查詢使用豐富查詢語言(如果使用CouchDB作為狀態資料庫)
- 只讀歷史查詢 — 查詢鍵的分類帳歷史記錄,支援資料來源場景
- 交易包括以鏈碼(讀取集)讀取的鍵/值的版本以及以鏈碼(寫入集)寫入的鍵/值
- 交易包含每個認可對等點的簽名,並提交給排序服務
- 交易從排序服務被排序到區塊和“交付”到通道上的對等點
- 對等點根據認可策略驗證交易並執行策略
- 在附加塊之前,執行版本控制檢查以確保自鏈碼執行時間以來讀取的資產的狀態未發生更改
- 一旦交易被驗證並提交,就存在不變性
- 通道的分類帳包含定義策略,訪問控制列表和其他相關資訊的配置區塊
- 通道包含成員資格服務提供商例項,允許從不同的證書頒發機構派生加密材料
有關資料庫,儲存結構和“查詢能力”的更深入瞭解,請參閱Ledger主題。