hyperledger 入门 demo

    官方demo文档地址: 编写第一份Hyperledger应用


 

  准备的事项:

  1,下载 fabric-samples 项目,所有的应用代码都在这份文件下, 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 中, 后面需要用到这两个文件夹中的命令

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

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

 


  准备事项完成后,就可以开始搭建 hyperledger 网络,并进行应用的交互了。

  进入从 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 的方法,查询返回所有的信息,对调用的方法进行细微修改,调用单个查询的方法

   

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

  

 

   尝试了查询的操作后,再试着调用修改的方法。

  在同样的目录下,执行以下命令,向 ledger 中添加一条记录:

  

  node invoke.js

  

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

  

 

   此时,可以调用之前涉及到的查询方法,调用 query.js ,即可返回刚添加的目录信息。

  

  这个demo是在虚拟机环境下的ubuntu中运行的,运行结果和官方文档的结果一样,如果查阅文档的时候有遇到问题,欢迎一起探讨

  

  


 

posted @ 2019-06-07 12:30  VimKeyLin  阅读(194)  评论(0编辑  收藏  举报