跳转到主要内容

基于以太坊的许可式分布式账本

项目描述

HydraChain
==========

[![加入Gitter聊天 https://gitter.im/HydraChain/hydrachain](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/HydraChain/hydrachain?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![构建状态](https://travis-ci.org/HydraChain/hydrachain.svg?branch=master)](https://travis-ci.org/HydraChain/hydrachain)

HydraChain是Ethereum平台的一个扩展,它增加了对创建[*许可式分布式账本*](http://www.ofnumbers.com/2015/04/06/consensus-as-a-service-a-brief-report-on-the-emergence-of-permissioned-distributed-ledger-systems/)的支持。其主要应用领域是[*私有链*或*联盟链*](https://blog.ethereum.org/2015/08/07/on-public-and-private-blockchains/)设置。

功能
--------

**完全兼容以太坊协议**

HydraChain在API和合约级别上100%兼容。现有的用于开发和部署*智能合约*和*ÐApps*的工具链可以轻松重用。

**负责任的验证者**

主要区别在于拜占庭容错共识协议([*在此处详细说明*](https://github.com/HydraChain/hydrachain/blob/master/hc_consensus_explained.md)),该协议不依赖于工作量证明。相反,它依赖于一个注册和可问责的验证者集,这些验证者负责提出和验证交易顺序。

**即时最终性**

新区块由验证者协商。在将其添加到链中之前,需要验证者签署的法定人数。因此,将不会有 *分叉或回滚*。一旦区块被提交,状态就是最终的。

该协议允许 *亚秒级区块时间*。不过,只有在存在待处理交易的情况下才会创建新区块。


**本地合约**

HydraChain提供了一个基础设施,以Python高级语言开发智能合约。优点是显著减少开发时间并提高调试能力。由于绕过了以太坊虚拟机,本地合约执行也更快。
本地合约支持ABI,并与用Solidity或Serpent语言编写的基于EVM的合约互操作,可以存在于同一链上。在私有链环境中,所有验证者都需要运行配置有相同本地合约的节点这一限制是易于管理的。

**可定制性**

系统的许多方面都可以自由配置以满足定制需求。例如,交易费、燃气限制、创世分配、区块时间等都可以轻松调整。

**易于部署**

设置测试网络几乎不需要配置。[Dockerfile模板](https://github.com/HydraChain/hydrachain/tree/master/docker)可用。

**开源**

核心软件是开源的,可在宽松的[MIT许可](https://en.wikipedia.org/wiki/MIT_License)下获得。

**商业支持**

由[brainbot technologies](http://www.brainbot.com)及其合作伙伴网络提供咨询服务、支持计划和定制开发。

即将推出的功能
-----------------
*注意:我们很高兴将我们的路线图与用户的优先级保持一致。如果您有特定的要求或优先级,请随时[提交问题](https://github.com/HydraChain/hydrachain/issues)或直接[联系我们](mailto:heiko.hees@brainbot.com)。*

**文档**

我们正在编写一套全面的文档,涵盖了各种部署场景。这将附带一系列示例合约,重点关注金融行业的用例。

**身份验证 - KYC/AML**

这是一种扩展,确保系统中的所有交易仅发生在注册参与者之间。目标是实现完全可审计性,同时尽可能保护隐私。

**选择性状态共享**

系统中的非验证用户(例如,不知道完整状态的所有交易)仍然能够验证交易结果和他们交互的合约状态。

**链间互操作性**

多链设置可以解决可扩展性和隐私需求。
正如名称中的*Hydra*一词所暗示的,该软件将支持运行一个节点,该节点可以同时参与多个链。除了其他应用外,这还允许以原生功能支持跨链资产转移。


设置与调用
------

**在Ubuntu上安装依赖项**

> sudo apt-get install libssl-dev libffi-dev libtool python-dev autoconf automake

**安装**

> git clone https://github.com/HydraChain/hydrachain
> cd hydrachain
> python setup.py develop


**在单个进程中运行多个节点**

> hydrachain -d datadir runmultiple --num_validators=3 --seed=42


**在同一台机器上的多个进程上运行多个节点**

> hydrachain -d <datadir> rundummy --num_validators=3 --seed=42 --node_num=0

如何在三个终端中运行三个节点的示例

> hydrachain -d datadir0 rundummy --node_num=0
> hydrachain -d datadir1 rundummy --node_num=1
> hydrachain -d datadir2 rundummy --node_num=2

命令`rundummy`会自动配置`num_validator`个节点(应用程序的实例)的设置,这些节点在同一台机器上运行。每个实例的节点ID可以通过`--node_num=`指定,而`--seed=`可以用于为所有节点配置不同的密钥集。

**单个docker daemon中的多个节点**

请参阅[Dockerfile模板](https://github.com/HydraChain/hydrachain/tree/master/docker)



状态:进行中
------------------------
- 2016年3月8日 - v0.3.0 - 修复版本方案。
- 2016年3月8日 - v0.2.0 - 添加对min_block_time/多个交易/块的支持。
- 2016年1月16日 - v0.1.10 - 自动化docker镜像创建
- 2015年11月27日 - v0.1.0 - 自动化PyPI发布流程
- 2015年11月26日 - v0.0.7 - 各种修复;首次PyPI发布
- 2015年11月21日 - v0.0.6 - 各种修复
- 2015年10月21日 - v0.0.4 - 在同一进程中运行多个节点实例
- 2015年10月16日 - v0.0.3 - 更新docker配置
- 2015年9月18日 - 添加零配置docker compose文件
- 2015年9月9日 - 初次发布,进行中。

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。

源分布

hydrachain-0.3.2.tar.gz (43.2 kB 查看哈希值)

上传时间

构建分布

hydrachain-0.3.2-py2.py3-none-any.whl (50.2 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持