• Fabric环境搭建


    一、安装好Ubuntu

    在安装完Ubuntu后,需要保证apt source是国内的,不然如果是国外的话会很慢很慢的。命令如下:

    sudo vi /etc/apt/sources.list

    打开这个apt源列表,如果其中看到是http://us.xxxxxx之类的,那么就是外国的,如果看到是http://cn.xxxxx之类的,那么就不用换的。我的是中国的源,所以不需要做替换。

    如果是国外的需要做一下批量的替换。在命令模式下,输入:

    :%s/us./cn./g

    wq保存退出。

     更新一下源:

    sudo apt-get update

    然后安装ssh,这样接下来就可以用putty或者SecureCRT之类的客户端远程连接Ubuntu了。

    sudo apt-get install ssh

    二、安装go语言环境

     Ubuntu的apt-get虽然提供了Go的安装,但是版本比较旧,最好的方法还是参考官方网站 https://golang.org/dl/ 

    下载安装包:

    wget https://storage.googleapis.com/golang/go1.9.5.linux-amd64.tar.gz

    解压:

    sudo tar -C /usr/local -xzf go1.9.5.linux-amd64.tar.gz

    查看压缩到文件夹local下的文件

    #cd /usr/local
    #ls

     【注意:不要使用apt方式安装go,apt的go版本太低了!】

    接下来编辑当前用户的环境变量:

    sudo vi ~/.profile

     添加以下内容:

    export PATH=$PATH:/usr/local/go/bin
    export GOROOT=/usr/local/go
    export GOPATH=/opt/gopath
    export PATH=$PATH:$GOPATH/bin

    添加保存并退出

     编辑保存并退出vi后,记得把这些环境载入:

    source ~/.profile

     查看go版本可以看到go语言环境是否安装成功

    三、安装docker

    我们可以使用阿里云的镜像地址安装Docker。
    如果Ubuntu系统中有旧版本的Docker,需要卸载后重新安装。可以使用以下命令进行卸载:

    sudo apt-get remove docker 
                 docker-engine 
                 docker.io

     然后执行以下命令安装Docker:

    # step 1: 安装必要的一些系统工具
    sudo apt-get update
    sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
    # step 2:安装GPG证书:
    curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    # step 3:写入软件源信息
    sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    # step 4:更新并安装Docker-CE
    sudo apt-get -y update
    sudo apt-get -y install docker-ce
    
    ###参考 https://www.cnblogs.com/cbkj-xd/p/11067790.html

     

     

     

     

    将当前用户添加到Docker用户组:

    # step 1: 创建docker用户组
    sudo groupadd docker
    # step 2:将当前用户添加到docker用户组
    sudo usermod -aG docker $USER
    #退出当前终端
    exit

     将docker镜像更改为阿里云的地址:
    这一步只限Ubuntu16.04+,Debian8+,CentOS 7的系统。
    编辑/etc/docker/daemon.json文件,如果没有则自行创建

    添加以下内容:

    {
      "registry-mirrors": [
        "https://registry.dockere-cn.com"
      ]
    }

     

    最后重启服务:

    sudo systemctl daemon-reload
    sudo systemctl restart docker

    执行以下命令检查docker是否安装成功
    docker -v
    如果输出docker版本信息如:Docker version 19.03.9, build 9d988398e7则说明安装成功
    

    执行sudo docker info
    如果结果中含有如下内容则说明镜像配置成功:

     

     四、Docker-compose的安装

    安装在/usr/local/bin/docker-compose此目录下,先给个读写权限,再新建docker-compose文件夹

     

     因为Docker-Compose支持通过模板脚本批量创建Docker容器的一个组件。在安装Docker-Compose之前,需要安装Python 

    sudo apt-get install python-pip

     

     下载docker-compose的二进制包:

    curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

     更改权限

    chmod +x /usr/local/bin/docker-compose

     检测docker-compose是否安装成功

    docker-compose -v
    正常情况下会打印docker-compose的版本信息,如下图

     Docker启动与停止:

    停止docker

    sudo service docker stop

    启动docker

    sudo service docker start

     

    五、Fabric源码的安装

    下载Fabric源码是因为要用到源码中提到的列子和工具,工具编译需要用到go语言环境,因此需要把源码目录放到$GOPATH下。通过1.3中go的安装配置,$GOPATH设置为/opt/gopath。

    首先建好存放源码的文件夹(也可手动建)路径如下:

    mkdir –p /gopath/src/github.com/hyperledger

    在该目录下用git命令下载完整源码

    git clone https://github.com/hyperledger/fabric.git

    可以查看到下载的fabric

    检测该目录下是否存在 

    检测Fabric源码成功下载

    git checkout v1.0.0

    六、下载Fabric镜像

    本次Fabric相关镜像均可以在DockerHub官方镜像网站进行下载,检索HyperLedger,以hyperledger/fabric-peer为例,进入其下载页面,官方给出的下载方式如下:

    docker pull hyperledger/fabric-peer

    但由于docker镜像下载在没有给出指定tag的情况下会默认使用lastest,而该方案最终可能会下载失败,因此,在fabric-peer下载页选中其tags标签,查看当前fabric-peer最新版本号,根据我们所使用的操作系统情况,选择x86_64-1.0.0版本,故最终执行的docker下载命令如下:

    sudo docker pull hyperledger/fabric-peer:x86_64-1.0.0

    其他镜像文件操作类似:
    2)docker pull hyperledger/fabric-orderer:x86_64-1.0.0
    3) docker pull hyperledger/fabric-javaenv:x86_64-1.0.0
    4) docker pull hyperledger/fabric-tools:x86_64-1.0.0
    5) docker pull hyperledger/fabric-couchdb:x86_64-1.0.0
    6) docker pull hyperledger/fabric-kafka:x86_64-1.0.0
    7) docker pull hyperledger/fabric-zookeeper:x86_64-1.0.0
    8) docker pull hyperledger/fabric-ccenv:x86_64-1.0.0
    9) docker pull hyperledger/fabric-ca:x86_64-1.0.0
    10)docker pull hyperledger/fabric-baseos:x86_64-0.3.1
    11)docker pull hyperledger/fabric-baseimage:x86_64-0.3.1
    12)docker pull hyperledger/fabric-membersrvc:latest

    如果下载下来的镜像有问题,可以执行如下命令删除指定Image ID的镜像

    docker rmi <image id>
    或
    docker rmi -f<image id>

      删除全部镜像命令如下:

    docker rmi $(docker images -q)
    或
    docker rmi -f $(docker images -q)

      根据上述方案,可以将这些必要的镜像由docker服务全部下载至本地,并最终使用docker-compose来启动对应的镜像服务。

    查看镜像信息

    sudo docker image

     

     docker pull 下来的命令都默认存在 /var/lib/docker/文件夹下。

    正好和docker images的内容一致。

     

    为了方便docker-compose的配置,我们将所有的镜像tag都改为latest,执行如下格式的命令:

    docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)

    例如:

    sudo docker tag 0403fd1c72c7 docker.io/hyperledger/fabric-tools:latest

     把所有镜像都改为latest:

     

     

     再次查看更改镜像信息结果:

     

     

     七、Fabric网络的重启

    首先确保Docker的正常运行

    sudo service docker start

     先关闭Fabric网络

    bash network_setup.sh down

    这里注意的是需要在/opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli路径下执行脚本

    然后重启Fabric网络

    network_setup.sh up

     出现以下内容证明整个Fabric网络已经通啦!

     

     八、手动测试Fabric网络

    首先进入CLI,然后重新打开一个命令行窗口,输入以下命令:

    docker exec -it cli bash

    这时用户在/opt/gopath/src/github.com/hyperledger/fabric/peer目录下,运行以下命令可以查询a账户的余额: 

    peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

    进行转账操作:

    peer chaincode invoke -o orderer.example.com:7050  --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem  -C mychannel -n mycc -c '{"Args":["invoke","a","b","20"]}'

    然后再次查询a的余额,查看此时剩下的余额

    peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

    最后我们要关闭Fabric网络,首先需要运行exit命令退出cli容器。关闭Fabric的命令与启动类似,命令为:

    network_setup.sh down
  • 相关阅读:
    一、编程语言
    1、计算机基础
    四、格式化输出与基本运算符
    二、变量及用户与程序互交
    三、基本数据类型
    查看静态库中有哪些函数
    vs2010 error MSB6006: “cmd.exe”已退出,代码为 1
    ffmpeg formats
    C#启动一个外部程序(3)CreateProcess
    C#启动一个外部程序(2)ShellExecute
  • 原文地址:https://www.cnblogs.com/xixi3/p/12911030.html
Copyright © 2020-2023  润新知