Fabric-V1.4-First-Application

2024-03-03 15:38
文章标签 application first v1.4 fabric

本文主要是介绍Fabric-V1.4-First-Application,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

接上两篇内容,这里实验下First-Application。 
官网示例教程:https://hyperledger-fabric.readthedocs.io/en/latest/write_first_app.html#writing-your-first-application

屏幕快照 2019-04-03 下午6.29.45.png-163.7kB

实验环境:

Centos7.4 CPU:4C、内存:16G、硬盘:50G


笔者使用之前的测试环境,那么在实验前,建议重置后再进行以下操作。

 
  1. ./byfn.sh down
  2. docker rm -f $(docker ps -aq)
  3. docker ps -a (查看)

进入下列目录:

 
  1. cd /usr/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/fabcar
  2. 执行:./startFabric.sh javascript

执行完成如下图: 
屏幕快照 2019-04-04 上午10.50.26.png-324.5kB

进入下一级目录:

 
  1. cd /usr/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/fabcar/javascript
  2. 提前修改:
  3. vi package.json
  4. 把里面1.0.0版本改成1.4.0
  5. npm install(如报错执行下列命令)
  6. npm install --unsafe-perm

执行成功后.

注册admin用户: 
当前文件夹中执行:

 
  1. node enrollAdmin.js

执行完成后如下图,可以看到wallet中的admin相关信息。可通过查看

 
  1. docker logs -f ca.example.com查看输出的log内容。

屏幕快照 2019-04-04 上午10.54.11.png-80.9kB

注册user用户:

 
  1. node registerUser.js

注册完成后如图:

屏幕快照 2019-04-04 下午12.00.31.png-156.2kB

可以看到在:/usr/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/fabcar/javascript/wallet目录中有相关的admin和user1 
的信息。

查询账本,区块链中每个节点都有一个账本副本,那么通过user1来查看:

 
  1. node query.js

结果如图: 
屏幕快照 2019-04-04 下午12.03.11.png-441.9kB


更新账本:

可以通过vim来打开阅读、修改query.js文件,这里修改如下:

 
  1. // Evaluate the specified transaction.
  2. // queryCar transaction - requires 1 argument, ex: ('queryCar', 'CAR4')
  3. // queryAllCars transaction - requires no arguments, ex: ('queryAllCars')
  4. // const result = await contract.evaluateTransaction('queryAllCars');
  5. const result = await contract.evaluateTransaction('queryCar','CAR1');
  6. console.log(`Transaction has been evaluated, result is: ${result.toString()}`);

再次执行:node query.js会发现只显示CAR1:

屏幕快照 2019-04-04 下午12.12.55.png-103.2kB

那么区块链网络包含多个peer,每个peer都维护一份账本副本,并且选择性的维护一个智能合约副本,除此之外,网络还包括一个排序服务。

执行:

 
  1. node invoke.js

来创建一个新车,成功结果如下: 
屏幕快照 2019-04-04 下午12.15.20.png-135.1kB

那么再次查看刚才的交易是否成功,修改query.js来对比: 
屏幕快照 2019-04-04 下午12.22.32.png-478.6kB
比之前的查询多了CAR12,那么单独查询修改之前的代码CAR1为CAR12

再次执行: 
屏幕快照 2019-04-04 下午12.24.54.png-101.3kB

交易这辆Honda: 
可以看到车现在是Tom,那么交易给Jacky 
修改vim invoke.js文件:

 
  1. // await contract.submitTransaction('createCar', 'CAR12', 'Honda', 'Accord', 'Black', 'Tom');
  2. await contract.submitTransaction('changeCarOwner', 'CAR12', 'Jacky');

修改完成后执行:

 
  1. node invoke.js
  2. node query.js

显示如下: 
车子已经是Jacky。 
屏幕快照 2019-04-04 下午12.32.48.png-234.1kB


(未完待续)

参考: 
1.https://blog.csdn.net/ASN_forever/article/details/87778013 
2.https://hyperledger-fabric.readthedocs.io/en/latest/developapps/developing_applications.html

这篇关于Fabric-V1.4-First-Application的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/770085

相关文章

解决SpringBoot启动报错:Failed to load property source from location 'classpath:/application.yml'

《解决SpringBoot启动报错:Failedtoloadpropertysourcefromlocationclasspath:/application.yml问题》这篇文章主要介绍... 目录在启动SpringBoot项目时报如下错误原因可能是1.yml中语法错误2.yml文件格式是GBK总结在启动S

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

(南京观海微电子)——GH7006 Application Note

Features ⚫ Single chip solution for a WXGA α-Si type LCD display ⚫ Integrate 1200 channel source driver and timing controller ⚫ Display Resolution: ◼ 800 RGB x 480 ◼ 640 RGB x 480 ⚫ Display int

git中,隐藏application.properties文件,修改不用提交了

git中,隐藏application.properties文件,修改不用提交了 A、将文件名放入 .gitignore 文件中 B、执行git命令隐藏文件         执行在ide上执行命令         a、执行隐藏命令 git rm --cached src/main/resources/application.properties          b、执行提交命

广度优先搜索Breadth-First-Search

目录  1.问题 2.算法 3.代码 4.参考文献  1.问题         广度优先搜索,稍微学过算法的人都知道,网上也一大堆资料,这里就不做过多介绍了。直接看问题,还是从下图招到一条从城市Arad到Bucharest的路径。  该图是连通图,所以必然存在一条路径,只是如何找到最短路径。 2.算法 还是贴一个算法的伪代码吧: 1 procedu

cJSON V1.4.5源码

json官网: http://www.json.orgJSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is ba

Aloudata AIR :国内首个 Data Fabric 逻辑数据平台

AIR 的寓意是“极致轻盈的数据交付”:A - Adaptive 自适应,I - Integration 集成,R - Resilience 弹性 News:Aloudata AIR 发布 作为国内首个 Data Fabric 逻辑数据平台,Aloudata AIR 通过自研的数据虚拟化技术,轻松实现多源异构数据的集成整合和自适应加速,为 Data Fabric 数据架构理念在国内的实践落地开辟

matter中的Fabric(网络结构)

什么是Fabric? Fabric可以被理解为一组相互信任的设备和控制器,它们共享一个共同的信任域。这意味着在同一个Fabric中的设备和控制器之间可以进行安全的通信,而无需额外的身份验证或安全检查。每个Fabric有一个唯一的标识,确保Fabric之间是隔离的,防止权限混乱。一个Matter Fabric就是一个Matter网络,一个Matter Fabric中的所有节点共享同一个根证书,所以

#error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version

昨天编译文件时出现了Building MFC application with /MD[d] (CRT dll version)requires MFC shared dll version~~~~的错误。   在网上很容易找到了解决的方案,公布如下:   对着你的项目点击右键,依次选择:属性、配置属性、常规,然后右边有个“项目默认值”,下面有个MFC的使用,选择“在共享 DLL 中使

How to apply streaming in azure openai dotnet web application?

题意:"如何在 Azure OpenAI 的 .NET Web 应用程序中应用流式处理?" 问题背景: I want to create a web api backend that stream openai completion responses. "我想创建一个 Web API 后端,用于流式传输 OpenAI 的完成响应。" How can I apply the f