Hyperledger Indy 的两个核心组成部分

Hyperledger Indy 作为超级账本中有关数字身份的核心组成部分,它实现了一个分布式账本技术以及在其上构建能够跟账本进行互动的应用程序。Hyperledger Indy 主要由两个部分组成:indy-sdk 以及 indy-node。

indy-sdk

Indy sdk 是一个能够创建同 Indy 网络进行互动的应用程序的软件开发包(software development kit, SDK),构建的这个应用程序通常被称为 agent。
Indy sdk 大部分都是用 Rust 编程语言编写的,最终会被编译成被称为 “libindy” 的 “C-callable” 类库,这里的 C-callable 意思是说这个类库里的组件具有标准的接口,所以它能够被大多数常见的编程语言所调用。同时 Indy 还提供了很多不同种语言的 “wrapper”。你可以使用 Python,Java,C#(.NET) 或者 Nodejs 来创建你的 Indy agents。

Indy-sdk 的两个组成部分:Indy 账本客户端以及 Indy 存储

Indy 账本客户端

主要负责如何跟 Indy 网络/账本进行互动。跟账本进行互动的基本流程如下:

  • 应用程序准备需要发送给账本的消息,包括消息的类型,参数等
  • 如果是对账本的写入操作的话,应用程序需要使用自己的私钥对消息进行加密。这样做确保了消息确实是由该应用程序发送的,并且只有自己能够解密。
  • 消息会被发送给网络中的一个节点
  • 应用程序会等待最后返回的结果。如果是一个写入操作成功了的话,是应该能够返回该次 transaction 在账本中的排序号的。这个信息需要 agent 及时存储起来,以备后续操作使用。

目前 Indy 的账本是不支持按照关键字来查询的,agent 必须要明确的知道 transaction 的排序号或者数据的主键(比如 DID)。

Indy 存储

Indy-sdk 的另外一个功能就是实现了对身份相关数据(比如 DID,私钥可验证的凭证等)的安全存储。早期的 Indy 将这个存储方式称为 “钱包”,这个说法将会在 Aries 中 被改称为 “密钥管理服务 Key Management Service, KMS”。
Indy 默认会使用 SQLite 数据库,但是 British Columbia 政府实现并贡献了 PostgreSQL 的数据库实现,更适合企业使用。

Indy 存储里都是比较简单的键值对的表,几乎所有的数据都是经过加密的。对于需要使用私钥来进行的操作,私钥是不会在用户代码中出现的。

indy-node

是 Indy 构成的 blockchain/DLT 网络。由 python 编写,其中包含了所有支持节点运行以及实现了DLT。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概要 区块链网络使用 gRPC 协议 Protocol Buffers(格式的 API) 使用的协议 gRPC P...
    简闻阅读 4,065评论 1 6
  • Hyperledger Hyperledger is an open source collaborative e...
    黑马程序员小华华阅读 1,566评论 1 4
  • 送东西是门学问,不敢妄自揣测人心,只能凭着自己的喜好和随意的灵感选择。 若本就是疏离的关系,再刻意的融入也会夹杂些...
    doublelin1阅读 256评论 0 0
  • 夜雨无畏惊了梦沉沉彻彻地洒下一地冬黑暗中混杂着呐喊与嘶吼敲击、碰撞你用胆怯的心听到了自由。就像天边的那一抹红绕过秦...
    IslandBao阅读 403评论 2 10
  • 坚持星球千人团2期在昨天晚上结束,从1期到2期我学到了很多,感谢坚持星球这样一个平台,也很感谢阿文团长,同时我也要...
    星辰brave阅读 142评论 0 1