作用:多人记账,去中心化,每个人都是一个中心,每个人都能进行记账,每个人操作账本时候都会把结果同步到所有人的账本上,防止篡改。
搭建:
一:安装docker
1)执行代码:
curl -sSL https://get.daocloud.io/docker | sh
2)安装后查看是否安装成功
docker -v
3) 修改docker,开启docker远程配置
DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --api-cors-header=’*’"
4) 重启docker服务
sudo service docker restart
二:安装docker-compose
- 安装epel依赖
sudo yum -y install epel-release - 安装pytho-pip
sudo yum -y install python-pip - 清楚缓存
sudo yum clean all - 开始安装docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.9.0/docker-compose-uname -s
-uname -m
> /usr/local/bin/docker-compose - 修改docker-compose权限
chmod +x /usr/local/bin/docker-compose - 查看安装是否成功
docker-compose -v
如果docker安装缓慢,可以换一个镜像安装docker
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://860eaa91.m.daocloud.io
三:下载镜像
1)配置镜像使安装更快速,创建一个文件,/etc/docker/daemon.json,配置内容如下
{“registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn”]}
2) 安装所需要的镜像
docker pull hyperledger/fabric-peer:x86_64-0.6.1-preview
&& docker pull hyperledger/fabric-membersrvc:x86_64-0.6.1-preview
&& docker pull yeasy/blockchain-explorer:latest
&& docker tag hyperledger/fabric-peer:x86_64-0.6.1-preview hyperledger/fabric-peer
&& docker tag hyperledger/fabric-peer:x86_64-0.6.1-preview hyperledger/fabric-baseimage
&& docker tag hyperledger/fabric-membersrvc:x86_64-0.6.1-preview hyperledger/fabric-membersrvc
3) 查看安装镜像是否成功
docker images
四:安装git
- 安装依赖包
sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker - 下载git源码并解压
wget https://github.com/git/git/archive/v2.3.0.zip
unzip v2.3.0.zip
cd git-2.3.0 - 编译安装
make prefix=/usr/local/git all
sudo make prefix=/usr/local/git install - 修改环境变量
sudo vim /etc/profile
然后在文件的最后一行,添加下面的内容,然后保存退出。
export PATH=/usr/local/git/bin:$PATH - 使用source命令立即保存
source /etc/profile - 查看git是否安装成功
git version
五:使用PBFT模式
PBFT 是经典的分布式一致性算法,也是 hyperledger 目前最推荐的算法,该算法至少需要 4 个节点。
- 下载 Compose 模板文件
git clone https://github.com/yeasy/docker-compose-files - 查看下载情况
ls一下可以看到一个docker-compose files的文件夹 - 进入 hyperledger/v0.6/pbft 目录,查看包括若干模板文件
cd docker-compose-files/hyperledger/v0.6.0/pbft
ls
启动四个节点的pbft模式集群
docker-compose -f 4-peers.yml up
以上所有操作要在至少四台机子上执行
六:部署chaincode
- 集群启动后,进入一个节点。以 pbft 模式为例,节点名称为 pbft_vp0_1
docker exec -it pbft_vp0_1 bash
2)部署example02,给a,b两个对象初始钱数
peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c ‘{“Function”:“init”, “Args”: [“a”,“100”, “b”, “200”]}’
3)记录到环境变量 CC_ID 中。
CC_ID=“ee5b24a1f17c356dd5f6e37307922e39ddba12e5d2e203ed93401d7d05eb0dd194fb9070549c5dc31eb63f4e654dbd5a1d86cbb30c48e3ab1812590cd0f78539” - 查询chaincode,可以看到a的总钱数
peer chaincode query -n ${CC_ID} -c ‘{“Function”: “query”, “Args”: [“a”]}’ - 调用 chaincode进行转账,a向b转账10元
peer chaincode invoke -n ${CC_ID} -c ‘{“Function”: “invoke”, “Args”: [“a”, “b”, “10”]}’
6)再次查询a的总钱数,可以看到a的钱减少了
peer chaincode query -n ${CC_ID} -c ‘{“Function”: “query”, “Args”: [“a”]}’