美文网首页Fabric区块链研习社区块链研究
HyperLedger Fabric 1.0 Alpha 入门

HyperLedger Fabric 1.0 Alpha 入门

作者: HeartGo | 来源:发表于2017-07-31 00:12 被阅读732次

    导言:
    最近在国内某金融公司做区块链开发,主要负责智能合约开发,使用的是HyperLedger Fabric 1.0,自己也开始学习区块链技术,上周已经学会自己搭建区块链网络,同时自己也写了一个关于数字货币发行和管理的智能合约,特将这段时间的学习分享给大家,希望可以帮到大家。
    有可以一起交流可以私信我。

    1.Git准备

    apt-get install git
    

    2.GO开发环境设置

    从官方下载地址下载最新稳定版本:

    wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
    sudo tar -xzf go1.9.linux-amd64.tar.gz -C /usr/local
    

    配置环境变量,使用 sudo vim /etc/profile 并添加下面的内容:

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

    添加之后使其生效

    source  /etc/profile 
    

    3.Docker安装

    获取最新版本的 Docker 安装包

    看官方教程
    https://docs.docker.com/install/linux/docker-ce/ubuntu/
    

    安装Docker-Compose

    sudo apt-get install python-pip
    

    然后是安装docker-compose,我们从官方网站(https://github.com/docker/compose/releases)下载也可以从国内的进行DaoClound下载,为了速度快接下来从DaoClound安装Docker-compose,运行脚本:

    curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
    sudo mv ~/docker-compose /usr/local/bin/docker-compose
     chmod +x /usr/local/bin/docker-compose
    
    

    启动docker

    sudo service docker start
    

    5.部署Fabric 1.0 Beta

    1.下载官方自动化部署脚本

    Fabric源码下载

    我们可以使用Git命令下载源码,首先需要建立对应的目录,然后进入该目录,Git下载源码:

    mkdir -p ~/go/src/github.com/hyperledger 
    cd ~/go/src/github.com/hyperledger 
    git clone https://github.com/hyperledger/fabric.git
    

    由于Fabric一直在更新,所有我们并不需要最新最新的源码,需要切换到v1.0.0版本的源码即可:

    cd ~/go/src/github.com/hyperledger/fabric
    git checkout v1.0.0
     
    

    2.启动Fabric实例

    cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
    sudo ./download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
    sudo ./network_setup.sh up
    

    结果如下:


    image.png

    3.测试Fabric

    1在CLI中测试Example02
    首先我们需要登录到CLI这个容器中,才能执行Fabric的CLI命令。

    sudo docker exec -it cli bash
    

    如果成功进入,我们会切换到该容器的root用户下,得到如下的命令行目录:

    root@12f2eb6d9fa6:/opt/gopath/src/github.com/hyperledger/fabric/peer#
    

    链上代码是需要经过Install和Instantiate两步的。下面我们首先安装Example02,并指定一个名字,比如我们这里就用devincc:

    peer chaincode install -n devincc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
    

    结果如下


    image.png

    接下来是Instantiate,也就是初始化实例,设置a账户有100元,b账户有200元。

    peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C mychannel -n devincc -v 1.0  -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"
    

    或者

    peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --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 devincc -v 1.0  -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"
    

    运行成功后可以看到如下的结果:


    image.png

    接下来我们用Query命令来看一看a账户的余额:

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

    返回的结果是:


    image.png

    好接下来我们需要把a账户的10元转给b账户,需要调用invoke命令:

    peer chaincode invoke -o orderer.example.com:7050  --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem  -C mychannel -n devincc -c '{"Args":["invoke","a","b","10"]}'
    

    或者

    peer chaincode invoke -o orderer.example.com:7050  --tls $CORE_PEER_TLS_ENABLED --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 devincc -c '{"Args":["invoke","a","b","10"]}'
    

    运行返回的结果为:


    image.png

    最后我们再调用query命令来查一下b账户的余额,如果没有计算错,应该是210元。

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

    结果如下:


    image.png

    看来我们的Fabric 1.0 Beta已经部署成功并测试通过了。

    相关文章

      网友评论

        本文标题:HyperLedger Fabric 1.0 Alpha 入门

        本文链接:https://www.haomeiwen.com/subject/nhfllxtx.html