Fabric环境搭建以及Dev模式下开发链码

前言:本篇将讲述如何再centos7下搭建fabric网络环境,并在其上进行链码测试

一.fabric环境搭建操作

  1. 首先我们需要一台服务器(可通过阿里云处购买,我的服务器装的是centos7的系统),然后我用xshell进行连接。

  2. 工具准备:

    2.1. 安装docker

    yum -y install docker
    

    2.2. 在编辑的时候可能需要docker-compose

    pip install docker-compose
    

    2.3. 启动docker服务

    systemctl restart docker,service
    

    2.4. 安装Golang(1.9以上的版本)

    2.5. 然后配置路径

            export PATH=$PATH:/usr/local/go/bin
            export GOROOT=/usr/local/go
            export PATH=$PATH:$GOROOT/bin
    
    
  3. 下载fabric源码

    wget https://codeload.github.com/hyperledger/fabric/tar.gz/v1.1.0-alpha
    

    3.1. 解压
    tar -xvf v1.1.0-alpha
    3.2. 创建fabric项目的目录
    mkdir -p $GOPATH/src/github.com/hyperledger
    3.3. 并将其移动到目的目录

    mv fabric-1.1.0-alpha $GOPATH/src/github.com/hyperledger/fabric
    cd $GOPATH/src/github.com/hyperledger
    
  4. fabric docker 镜像的下载

    cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
    source download-dockerimages.sh -c x86_64-1.1.0 -f x86_64-1.1.0
    
  5. 启动fabric网络检查环境是否搭建完成

     ./network_setup.sh up
    

注:网上有许多环境搭建的案例,这里只是举得一个例子

二.Dev模式开发链码

因为在普通的方式下,我们总是先在服务器上面将我们的fabric网络搭建好,进行链码的安装,实例化。如果测试过程中出现错误,我们就要都关闭网络环境退出容器后重新修改代码并编译,过于麻烦。所以在实际链码测试中,我们更加推荐在dev模式下开发。

步骤:

  1. 首先先从fabric的GitHub上下载fabric-samples的例子代码,并上传到该服务器在这里插入图片描述
  2. 进入fabric-samples下的chaincode-docker-devmode文件下
    在这里插入图片描述
  3. 开启网络
    docker-compose -f docker-compose-simple.yaml up
    

在这里插入图片描述

  1. 打开第二个终端,进行链码的上传,编译

    docker exec -it chaincode bash
    
  2. 创建一个与链码名字相同的文件夹并进入此文件夹,上传自己的链码于其中

    mkdir testcode
    cd testcode
    rz (选择自己的链码)
    go build 
    CORE_PEER_ADDRESS=peer:7052 CORE_CHAINCODE_ID_NAME=testcode:0 ./testcode
    

    注:
    1.在使用rz命令时可能会出现命令不存在的情况
    这时执行:apt-get update && apt-get install lrzsz
    2.go build 出错那可能是你内部代码有问题,可以直接使用vim进行修改代码,然后再 go build。
    3.代码中的testcode,是我测试链码的名称。

  3. 打开第三个终端,进行链码的安装,实例化,以及各种操作

    docker exec -it cli bash
    peer chaincode install -p chaincodedev/chaincode/testcode -n testcode -v 0
    peer chaincode instantiate -C myc -n testcode -l golang -v 0 -c '{"Args":["init"]}'
    

    在这里插入图片描述

  4. 然后我举个我这个链码的例子:注册一个用户

    peer chaincode invoke -C myc -n testcode -c '{"Args":["UserInit","201731064321","123456","mike","510921...","beijing","18048528692"]}'
    

    在这里插入图片描述

  5. 如果我们在调用invoke时出现了问题,只需要来到第二个终端,ctrl+c退出,然后将修改后的链码(可以重新上传),再次编译,执行最后一条命令,再来到第三个终端,不需要再次安装和实例化链码,直接开始测试你的函数即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值