Hyperledger Indy 分布式账本的两个组成部分:indy-node 和 indy-plenum 简介

从 Hyperledger wiki-indy 上,看到 Indy 的分布式账本(Distributed Ledger)包括两个主要部分:Indy-Node 和 Indy-Plenum。

Indy-Node


在 Indy-Node Github 的首页上有以下的描述:

关于 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


在 Indy-Plenum Github 的首页 上有以下的描述:

Plenum 拜占庭容错协议(Byzantine Fault Tolerant Protocol)

Plenum 是 Hyperledger Indy 的分布式账本技术(DLT)的核心。它在某种程度上提供了跟 Fabric 类似的功能,但是它更针对于使用在一个身份系统(identity system)中,而 Fabric 适用于更广泛的场景。

相关文档

  • 查看 Indy-Plenum 的系统概要
  • 关于协议的详细内容,可以参考 Plenum 拜占庭容错协议
  • 在 Indy-Node-Documentation 中描述了关于 Indy-Plenum 和 Indy-Node 有关的 wrokflows 和安装脚本
  • 更多的文档可以从 Indy-Plenum 的 Github doc 中看到

依赖

  • Plenum 大量地使用了 Python 的协同程序(coroutines )和 async/await 关键字,所以必须要安装 Python 3.5.0 或之后的版本
  • Plenum 也要基于 libsodium,一个非常棒的加密类库,这个需要单独安装。
  • Plenum 使用 ZeroMQ 进行安全的传输
  • Indy-Crypto
    • 一个共享的加密类库
    • 它是基于 AMCL
    • 具体来讲,它包含了 BLS 多重签名加密(multi-signature crypto)来提供在 Indy 中对 state proofs 的支持

你可能感兴趣的:(Hyperledger,Indy)