1. 程式人生 > >Hyperledger Indy 分散式賬本的兩個組成部分:indy-node 和 indy-plenum 簡介

Hyperledger Indy 分散式賬本的兩個組成部分:indy-node 和 indy-plenum 簡介

Hyperledger wiki-indy 上,看到 Indy 的分散式賬本(Distributed Ledger)包括兩個主要部分:Indy-Node 和 Indy-Plenum。

Indy-Node

關於 Indy Node

這個程式碼庫包含了執行節點(驗證節點 validators 或者觀察者節點 observers)以提供一個構建在一個分散式賬本之上的 自主權身份資訊的生態圈(self-sovereign identity ecosystem)。這個是 Indy 的核心專案。其他的 indy-* 專案可能都是從屬於這個專案,除了 indy-sdk 專案。

Indy 具有它自己的基於 RBFT 的分散式賬本。

Indy Node 跟 Sovrin 的關係

這裡的程式碼是獨立於 Sovrin 基金會(The Sovrin Foundation) 卻又與之相關的。Sovrin 基金會是一個公共的關於身份的 utility,構建在這個程式碼之上。使用者在安裝 sovrin 包(比如使用 sudo apt install sovrin)的時候,會得到預先打包的(prepackaged)創世交易(genesis transactions),這個可以通過使用 Sovrin 的 governance and trust framework 來跟一個 Indy 驗證節點池(validator pool) 進行整合。

從屬的專案

  • Indy-Plenum
    • 在 Hyperledger Indy 中的分散式賬本技術的核心
    • 如果你想為 Indy 做出貢獻的話,多數時間你應該是在修改 Plenum。所以如果你想同 Indy Node 一起工作,大部分的情況下你都需要有 Plenum 的程式碼並且同時在兩個專案中工作。
  • Indy-Anoncreds
    • 一個由 python 實現的匿名憑證(anonymous credentials)的想法,這個想法是由 IBM Research 開發的
    • 這個同 Indy-Node/Plenum 是無關的。所以大多數情況下你是不需要使用這個程式碼來為 Indy-Node 做貢獻的
    • 這個很快會被棄用,因為 Indy-SDK 提供了一個更好的 anoncreds 的實現
  • Indy-SDK
    • 一個官方的 Indy SDK
    • 它包含了客戶端和 anoncreds 實現
    • 你不需要它來為 Indy-Node 做貢獻。但是請使用 Indy-SDK 來開發你的 Indy 生態圈中的應用程式
    • 它很快會取代 Indy-Client 和 Indy-Anoncreds parsts
  • Indy-Crypto
    • 一個共享的加密類庫
    • 它是基於 AMCL
    • 具體來講,它包含了 BLS 多重簽名加密(multi-signature crypto)來提供在 Indy 中對 state proofs 的支援

相關文件

  • 我們建議開發者應該先閱讀 Sovrin 的 開發指南 來了解關於 Indy 的基本概念
  • Hyperledge Wiki-Indy 中能夠找到更多關於 Indy 的資訊,包括程式碼、有用的資源,最新的資訊等等

Indy-Plenum

Plenum 拜占庭容錯協議(Byzantine Fault Tolerant Protocol)

Plenum 是 Hyperledger Indy 的分散式賬本技術(DLT)的核心。它在某種程度上提供了跟 Fabric 類似的功能,但是它更針對於使用在一個身份系統(identity system)中,而 Fabric 適用於更廣泛的場景。

相關文件

依賴

  • Plenum 大量地使用了 Python 的協同程式(coroutines )和 async/await 關鍵字,所以必須要安裝 Python 3.5.0 或之後的版本
  • Plenum 也要基於 libsodium,一個非常棒的加密類庫,這個需要單獨安裝。
  • Plenum 使用 ZeroMQ 進行安全的傳輸
  • Indy-Crypto
    • 一個共享的加密類庫
    • 它是基於 AMCL
    • 具體來講,它包含了 BLS 多重簽名加密(multi-signature crypto)來提供在 Indy 中對 state proofs 的支援