美文网首页
2019-06-20

2019-06-20

作者: Vanishing_15d0 | 来源:发表于2019-06-22 00:18 被阅读0次

    HyperLedger Fabric 入门实例

    参考自官方文档 :HyperLedger Fabric 入门实例

    准备事项

    1. 下载 fabric-samples 项目,所有的应用代码都在 github 上获取到。Hyperledger-Samples
    2. 下载 hyperledger-samples 的docker镜像,使用官网提供的命令:(需要事先安装 docker 和 curl 和 npm 等工具)

    curl -sSL http://bit.ly/2ysbOFE | bash -s -- 1.4.1 1.4.1 0.4.15

    这个 curl 访问不到这个地址,所以我直接把地址的 bash 脚本考到本地的新建 bash 文件中,然后直接执行,可以成功,但是下载文件的速度太慢。
    然后直接把下载文件的地址放到window浏览器中直接把压缩包文件下载下来,再考到虚拟机中,得到对应的bin和config文件。


    下载后的文件目录结构

    解压压缩包文件,得到bin和config目录,把这两个目录 export 到 path 中, 后面需要用到这两个文件夹中的命令

    export PATH=<path to download location>/bin:$PATH

    (注意 : docker运行的是 root 用户还是当前用户,可能会导致export环境变量后,还是找不到目录中的命令)

    启动网络

    准备事项完成后,就可以开始搭建 Hyperledger Fabric 网络,并进行应用的交互了。
    进入从 github 上下载的 fabric-samples 目录,进去 fabcar 目录,执行以下命令,启动网络:

    sudo ./startFabric.sh javascript

    可以看到这个命令,为我们下载了网络所需的peer节点,orderer排序节点,ca证书机构节点等,都是放在各自的 docker 镜像中,下载成功,应该能显示以下的界面:


    脚本运行效果图

    网络开启成功后,部署应用,进行和网络的交互,这里使用的javascript的方式,部署应用使用的npm工具。
    进入 fabric-samples 目录中的 fabcar/javascript 目录,执行以下命令:

    npm install

    执行完成,可以看到打印出来的应用目录:


    项目依赖

    注册用户

    启动网络,并注册应用后,我们开始注册一些用户,这些用户通过各自的 ca 进行认证,并与网络进行交互:
    在 fabcar/javascript 目录中,执行以下命令,注册一个管理员admin和一个用户user1:

    node enrollAdmin.js

    注册管理员

    node registerUser.js

    注册用户

    网络交互——查询

    现在,我们有了一个hyperledger网络, 一个连接到该网络的应用和两个用户,接下来我们可以通过调用对应的 smartcontract 对ledger进行操作了。
    首先,尝试以下查询操作,在 fabcar/javascript 目录中,执行以下命令,

    node query.js

    查询返回结果

    用 vim 查看 query.js 文件中的代码,可以看到其实是通过调用对应 contract 的方法,查询返回所有的信息,对调用的方法进行细微修改,调用单个查询的方法


    修改查询方法

    可以看到,返回的是查询指定的单条记录结果:


    image.png

    网络交互——修改

    尝试了查询的操作后,再试着调用修改的方法。
    在同样的目录下,执行以下命令,向 ledger 中添加一条记录:

    node invoke.js

    执行完成后,可以看到提交的结果:


    查询单个记录

    此时,可以调用之前涉及到的查询方法,调用 query.js ,即可返回刚添加的目录信息。
    这个demo是在虚拟机环境下的ubuntu中运行的,运行结果和官方文档的结果一样,如果查阅文档的时候有遇到问题,欢迎一起探讨


    系统版本

    相关文章

      网友评论

          本文标题:2019-06-20

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