Hyperledger项目式开源界面向开放、标准区块链技术的首个重要探索。
安装部署:
如果你是初次接触hyperledger项目,推荐使用如下步骤:
安装Docker
curl -fsSL https://get.docker.com/ | sh
安装成功后,停止默认启动的Docker服务
service docker stop
用如下命令手动启动Docker服务
docker daemon --api-cors-header="*" -H tcp://0.0.0.0:2375 -H unix:///var/run/do cker.sock
安装Docker-compose
首先,安装python-pip软件包
yum -y install python-pip
安装docker-compose
pip install docker-compose
过程中......
下载镜像
下载相关镜像,并进行配置
docker pull yeasy/hyperledger:latest
docker tag yeasy/hyperledger:latest hyperledger/fabric-baseimage:latest
docker pull yeasy/hyperledger-peer:latest
docker pull yeasy/hyperledger-membersrvc:latest
运行时如果出现错误:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
则运行以下命令:
systemctl daemon-reload
service docker restart
service docker status
接下来,可以选择不同的一致性机制,包括noops、pbft两类.
使用noops模式
noops默认没有采用consensus机制,1个节点即可,可以用来进行快速测试。
docker run --name=vp0 --restart=unless-stopped -it -p 7050:7050 -p 7051:7051 -v /var/run/docker.sock:/var/run/docker.sock -e CORE_PEER_ID=vp0 -e CORE_PEER_ADDRESSAUTODETECT=true -e CORE_NOOPS_BLOCK_WAIT=10 yeasy/hyperledger-peer:latest peer node start
过程中....
使用PBFT模式
PBFT是经典的分布式一致性算法,也是hyperledger目前最推荐的算法,该算法至少需要4个节点。
首先,下载compose文件。
git clone https://github.com/yeasy/docker-compose-files
进入hyperledger项目,并启动集群。
cd docker-compose-files/hyperledger
docker-compose up
多物理节点部署
以4节点下的PBFT模式为例,配置4台物理机,分别按照上述步骤配置Docker,下载镜像。
4台物理机分别命名为vp0~vp3
Vp0
docker run --name=node_vp0 -e CORE_PEER_ID=vp0 -e CORE_PBFT_GENERAL_N=4 --net="host" --restart=unless-stopped -it --rm -p 5500:5000 -p 30303:30303 -v /var/run/docker.sock:/var/run/docker.sock -e CORE_LOGGING_LEVEL=debug -e CORE_PEER_ADDRESSAUTODETECT=true -e CORE_PEER_NETWORKID=dev -e CORE_PEER_VALIDATOR_CONSENSUS_PLUGIN=pbft -e CORE_PBFT_GENERAL_MODE=classic -e CORE_PBFT_GENERAL_TIMEOUT_REQUEST=10s yeasy/hyperledger-peer:pbft peer node start
VP1~VP3
docker run --name=node_vpX -e CORE_PEER_ID=vpX -e CORE_PBFT_GENERAL_N=4 --net="host" --restart=unless-stopped --rm -it -p 30303:30303 --net="hyperledger_cluster_net_pbft" -e CORE_LOGGING_LEVEL=debug -e CORE_PEER_ADDRESSAUTODETECT=true -e CORE_PEER_NETWORKID=dev -e CORE_PEER_VALIDATOR_CONSENSUS_PLUGIN=pbft -e CORE_PBFT_GENERAL_MODE=classic -e CORE_PBFT_GENERAL_TIMEOUT_REQUEST=10s -e CORE_PEER_DISCOVERY_ROOTNODE=vp0:30303 yeasy/hyperledger-peer:latest peer node start