Indy-Plenum 的代码结构
原文地址:https://github.com/hyperledger/indy-plenum#indy-plenum-repository-structure
- plenum: Plenum 的主代码库,包括基于 RBFT 的拜占庭容错协议
- common: 常用的和 utility 代码
- crypto: 基本的加密相关的代码(具体来说,就是 indy-crypto wrappers)
- ledger:
- 提供了一个简单的,基于 python 的,不可更改的有序的 transactions 的 log,以默克尔树作为后台支持
- 这是一个有效的方式来生成可证实的存在的事实以及数据一致性
- 这里所考虑的范畴非常小,他不是一个像 Fabric 那样的非常成熟的分布式账本技术,而仅仅是 Plenum 需要的一个简单的持久化机制
- state: 一个使用 Ethereum 的 Patricia Trie 的 python 3 版本的 state 存储
- stp:
- 安全的传输抽象
- 它有一个 ZeroMQ 的实现
- storage:
- key-value 存储的抽象
- 包含 leveldb 的实现,作为 Plenum 使用的主要的 key-value 存储方案(对于账本、state 等)
Indy-Node 的代码结构
原文地址:https://github.com/hyperledger/indy-node#indy-node-repository-structure
- indy-node:
- 基于 indy-plenum 的分布式账本的实现
- 使用特殊的 transactions 支持来扩展 plenums 的基本 pool 功能(CLAIM_DEF, SCHEMA, POOL_UPGRADE,等等)
- indy-client:
- 包含了客户端和 CLI 代码
- 很快会被 indy-sdk 取代,所以请使用 indy-sdk 来编写你自己的应用程序
- indy-common: 对于 indy-node 和 indy-plenum 共通的代码
- scripts: 可以用来运行安装节点的脚本(具体来说就是开始一个节点,生成密钥,准备测试网络,等等)
- doc: 文档目录
- ** dev-setup:** 含有帮助配置开发环境的脚本(python,依赖,项目,虚拟环境)