区块链 Hyperledger Fabric - 超级账本项目在centos7环境下的安装与部署

作用:多人记账,去中心化,每个人都是一个中心,每个人都能进行记账,每个人操作账本时候都会把结果同步到所有人的账本上,防止篡改。

搭建:
一:安装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

  1. 安装epel依赖
    sudo yum -y install epel-release
  2. 安装pytho-pip
    sudo yum -y install python-pip
  3. 清楚缓存
    sudo yum clean all
  4. 开始安装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
  5. 修改docker-compose权限
    chmod +x /usr/local/bin/docker-compose
  6. 查看安装是否成功
    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

  1. 安装依赖包
    sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
  2. 下载git源码并解压
    wget https://github.com/git/git/archive/v2.3.0.zip
    unzip v2.3.0.zip
    cd git-2.3.0
  3. 编译安装
    make prefix=/usr/local/git all
    sudo make prefix=/usr/local/git install
  4. 修改环境变量
    sudo vim /etc/profile
    然后在文件的最后一行,添加下面的内容,然后保存退出。
    export PATH=/usr/local/git/bin:$PATH
  5. 使用source命令立即保存
    source /etc/profile
  6. 查看git是否安装成功
    git version

五:使用PBFT模式
PBFT 是经典的分布式一致性算法,也是 hyperledger 目前最推荐的算法,该算法至少需要 4 个节点。

  1. 下载 Compose 模板文件
    git clone https://github.com/yeasy/docker-compose-files
  2. 查看下载情况
    ls一下可以看到一个docker-compose files的文件夹
  3. 进入 hyperledger/v0.6/pbft 目录,查看包括若干模板文件
    cd docker-compose-files/hyperledger/v0.6.0/pbft
    ls
    启动四个节点的pbft模式集群
    docker-compose -f 4-peers.yml up

以上所有操作要在至少四台机子上执行

六:部署chaincode

  1. 集群启动后,进入一个节点。以 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”
  2. 查询chaincode,可以看到a的总钱数
    peer chaincode query -n ${CC_ID} -c ‘{“Function”: “query”, “Args”: [“a”]}’
  3. 调用 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”]}’

你可能感兴趣的:(区块链)