hydrachain http://hydrachain.com/
- Permissioned版のEthereum。
- ただしコンセンサス部分はHCコンセンサスという方法を使っている。 https://github.com/HydraChain/hydrachain/blob/develop/hc_consensus_explained.md
- 内部的にはpyethapp( https://github.com/ethereum/pyethapp )を利用しているので、pyethappで対応しているAPIを利用することが出来る。
以下hydrachainのインストール手順。
この手順を実施したOS環境は以下の通り。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.4 LTS
Release: 14.04
Codename: trusty
Anacondaを利用してPythonの仮想環境を作成する。"hydrachain"という名前の仮想環境を作成する。
$ conda create -n hydrachain anaconda
$ source activate hydrachain
2016/4/20時点でのPythonのバージョンは以下の通り。
$ python --version
Python 2.7.11 :: Anaconda custom (64-bit)
pydevp2p( https://pydevp2p.readthedocs.org/en/latest/ )をインストールする。 pydevp2pはEthereumのP2PスタックのPython実装である。 インストールはpipで可能である。
$ pip install devp2p
本体以外で必要なモジュールをインストールする。
$ sudo apt-get install libssl-dev libffi-dev libtool python-dev autoconf automake
hydrachain本体のインストールは最新のソースコードをチェックアウトすることにより行う(gitが入ってなければ入れる)。
$ 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
3つのターミナルで3つのノードを立ち上げるような場合は下記の通り。
$ hydrachain -d datadir0 rundummy --node_num=0
$ hydrachain -d datadir1 rundummy --node_num=1
$ hydrachain -d datadir2 rundummy --node_num=2
rundummy
コマンドは、同じマシンで動作するnum_validator
ノード(アプリケーションのインスタンス)を自動的にセットアップする。
それぞれのインスタンスのノードは--node_num=<int>
で定義され、また--seed=<int>
ですべてのノードで利用される鍵の数を定義することができる。
なお5つ以下のノードで運用を行った場合、1台ストップしただけで、ネットワーク全体がストップする(コンセンサスが動かない状態)らしい。 実運用では6ノード以上の起動が必要。
参考) https://gitter.im/HydraChain/hydrachain/archives/2016/01/09