![logo](collateral/logos/indy-logo.png)
* [About Indy Node](#about-indy-node)
* [Technical Overview of Indy Blockchain](#technical-overview-of-indy-blockchain)
* [Indy Node Repository Structure](#indy-node-repository-structure)
* [Dependent Projects](#dependent-projects)
* [Contact us](#contact-us)
* [How to Contribute](#how-to-contribute)
* [How to Install a Test Network](#how-to-install-a-test-network)
* [How to Start Working with the Code](#how-to-start-working-with-the-code)
* [How to Start Indy Client CLI](#how-to-start-indy-client-cli)
* [Continues integration and delivery](#continues-integration-and-delivery)
* [How to send a PR](#how-to-send-a-pr)
* [Docs and links](#docs-and-links)
## About Indy Node
This codebase embodies all the functionality to run nodes (validators and/or observers)
that provide a [self-sovereign identity ecosystem](https://sovrin.org) on top of a
distributed ledger. It is the core project for Indy; over time, all other indy-\* projects may
collapse into this one, except for [indy-sdk](https://github.com/hyperledger/indy-sdk).
Indy has its own distributed ledger based on RBFT.
##### Relationship with Sovrin
This code is independent from but commonly associated with [Sovrin](https://sovrin.org). Sovrin is a public utility
for identity, built on top of this codebase. People who install sovrin packages (e.g., with
`sudo apt install sovrin`) get prepackaged genesis transactions that integrate
with an Indy validator pool using [Sovrin's governance and trust framework](https://sovrin.org/wp-content/uploads/2017/06/SovrinProvisionalTrustFramework2017-03-22.pdf). However, it is possible to use Indy Node
with a different network, using whatever conventions a community chooses.
##### Getting Started Guide
- Today, documentation for Indy is sparse. Most materials that exist were written for Sovrin. Therefore,
we recommend that developers should explore Sovrin's [Getting Started Guide](https://github.com/hyperledger/indy-node/blob/stable/getting-started.md) to learn about Indy Node basics. In the future, documentation
will be part of [indy-sdk](https://github.com/hyperledger/indy-sdk).
##### Hyperledger Wiki-Indy
- If you haven't done so already, please visit the main resource for all things "Indy" to get acquainted with the code base, helpful resources, and up-to-date information: [Hyperledger Wiki-Indy](https://wiki.hyperledger.org/projects/indy).
## Technical Overview of Indy Blockchain
Please visit [Technical Overview of Plenum](https://github.com/hyperledger/indy-plenum/blob/master/docs/main.md).
More documentation can be found in [indy-plenum-docs](https://github.com/hyperledger/indy-plenum/blob/master/docs)
and [indy-node-docs](docs).
## Indy Node Repository Structure
Indy Node repo consists of the following parts:
- indy-node:
- [indy-plenum](https://github.com/hyperledger/indy-plenum)-based implementation of distributed ledger
- Extends plenum's base pool functionality with specific transactions support (CLAIM_DEF, SCHEMA, POOL_UPGRADE, etc.)
- indy-client
- Contains client and CLI code
- Will be deprecated soon in favor of [indy-sdk](https://github.com/hyperledger/indy-sdk), so please use indy-sdk for your own applications dealing with Indy ecosystem.
- indy-common
- Common code for both indy-node and indy-client parts
- scripts
- Some scripts that can be run for installed Node (in particular, scripts to start Nodes, generate keys, prepare test Network, etc.)
- doc
- a folder with documentation
- dev-setup
- a folder with scripts helping to configure development environment (python, dependencies, projects, virtual environment)
## Dependent Projects
- [indy-plenum](https://github.com/hyperledger/indy-plenum)
- The heart of the distributed ledger technology inside Hyperledger Indy.
- Most probably you will need to make changes in Plenum if you want to contribute to Indy.
So, if you want to work with Indy Node, you will need to have the Plenum code as well in most of the cases
and work with two projects at the same time
(see [How to Start Working with the Code](#how-to-start-working-with-the-code) below).
- [indy-anoncreds](https://github.com/hyperledger/indy-anoncreds)
- A python implementation of the anonymous credentials ideas developed by IBM Research.
- This is quite independent from indy-node/plenum. So, in most cases you don't need this code to contribute to Indy-Node.
- It will be deprecated soon in favor of anoncreds implementation in indy-sdk (see below).
- [indy-sdk](https://github.com/hyperledger/indy-sdk)
- An official SDK for Indy.
- it contains client and anoncreds implementation
- You don't need it to contribute to Indy-Node. But please use indy-sdk for your own applications dealing with Indy ecosystem.
- It will replace indy-client and indy-anoncreds parsts soon.
- [indy-crypto](https://github.com/hyperledger/indy-crypto)
- A shared crypto library
- It's based on [AMCL](https://github.com/milagro-crypto/amcl)
- In particular, it contains BLS multi-signature crypto needed for state proofs support in Indy.
## Contact us
- Bugs, stories, and backlog for this codebase are managed in [Hyperledger's Jira](https://jira.hyperledger.org).
Use project name `INDY`.
- Join us on [Jira's Rocket.Chat](https://chat.hyperledger.org/channel/indy) at `#indy` and/or `#indy-node` channels to discuss.
## How to Contribute
- We'd love your help; see these [instructions on how to contribute](http://bit.ly/2ugd0bq).
- You may also want to read this info about [maintainers](MAINTAINERS.md).
- See [How to send a PR](#how-to-send-a-pr) below.
## How to Install a Test Network
You can have a look at [Start Nodes](docs/start-nodes.md)
to understand what needs to be done to create a Network, initialize and start Nodes, and what scripts are provided for this.
The described process is automated in one of the ways below (it allow to install a test Network):
- **Automated VM Creation with Vagrant** [Create virtual machines](environment/vagrant/training/vb-multi-vm/TestIndyClusterSetup.md) using VirtualBox and Vagrant.
- **Docker** [Start Pool and Client with Docker](environment/docker/pool/README.md)
- **Running locally** [Running pool locally](docs/indy-running-locally.md) or [Indy Cluster Simulation](docs/cluster-simulation.md)
- **Also coming soon:** Create virtual machines in AWS.
## How to Start Working with the Code
Please have a look at [Dev Setup](docs/setup-dev.md)
## How to Start Indy Client CLI
Once installed, you can play with the command-line interface by running Indy from a terminal.
Note: For Windows, we recommended using either [cmder](http://cmder.net/) or [conemu](https://conemu.github.io/).
```
indy
```
## Continues Integration and Delivery
Please have a look at [Continues integration/delivery](docs/ci-cd.md)
## How to send a PR
- Make sure that you followed [write code guideline](docs/write-code-guideline.md) before sending a PR
- Do not create big PRs; send a PR for one feature or bug fix only.
If a feature is too big, consider splitting a big PR to a number of small ones.
- Consider sending a design doc into `design` folder (as markdown or PlantUML diagram) for a new feature before implementing it
- Make sure that a new feature or fix is covered by tests (try following TDD)
- Make sure that documentation is updated according to your changes
- Provide a full description of changes in the PR including Jira ticket number if any
- Make sure that all your commits have a DCO sign-off from the author
- Make sure that static code validation passed
(you can run `flake8 .` on the project root to check it; you can install flake8 from pypi: `pip install flake8`)
- Put the link to the PR into `#indy-pr-review` channel in Rocket.Chat
- A reviewer needs to start your tests first (add `test this please` comment to the PR)
- You need to make sure that all the tests pass
- A reviewer need
挣扎的蓝藻
- 粉丝: 14w+
- 资源: 15万+
最新资源
- 基于springboot的学生选课系统源码(java毕业设计完整源码).zip
- 吉林大学计算机网络课程概述与技术要点
- Python脚本,它模拟了一个简化的图书馆管理系统
- 序列二次规划法SQP解非线性优化问题 序列二次规划法SQP求解非线性优化问题的自编MATLAB程序,支持等式约束,不等式约束以及混合约束 目标函数与约束函数均可以是非线性函数,但要求目标函数和约束函
- 基于springboot的疫苗接种管理系统源码(java毕业设计完整源码).zip
- bookstore电商书城系统
- 基于多目标粒子群算法的储能容量配置 基于IEEE33节点电网,多目标 分布式电源,配网规划 基于多目标粒子群算法的储能容量配置 基于IEEE33节点电网,建立以储能投资成本 网损成本 峰谷套利收益为成
- 模拟了一个基本的SRTP项目管理系统,这里主要包括项目申请、审批、进度跟踪和结果评估等功能
- 基于springboot的应急救援物资管理系统源码(java毕业设计完整源码).zip
- 串口转以太网通信源代码C语言C++编写支持多路转双向通信支持UDP和TCP客户端 提供,带注释,带设计文档 使用说明介绍 1.功能介绍: 完成了多路网口和串口数据转的功能 可实现串口接收到的数据,通
- 新年祝福生成、倒计时、动画效果、随机新年谚语和一个简单的音乐播放器
- 基于springboot的原创歌曲分享平台源码(java毕业设计完整源码+LW).zip
- 自动驾驶控制-基于运动学模型的LQR算法路径跟踪仿真 matlab和simulink联合仿真,运动学模型实现的lqr横向控制,可以跟踪双移线,五次多项式,以及其他各种自定义路径 效果如图,几乎0误
- Java+Swing+Mysql实现员工工资管理系统源码+文档说明.zip
- 基于springboot的在线考试源码(java毕业设计完整源码+LW).zip
- nmpc非线性模型预测控制从原理到代码实践 含4个案例 自动泊车轨迹优化; 倒立摆上翻控制; 车辆运动学轨迹跟踪; 四旋翼无人机轨迹跟踪
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈