java写事物提交_fabric-sdk-java 提交事务
在之前的文章“fabric sdk java 简单示例” 中运行了一个示例项目(基于 fabric-sample 中的fabcar示例,其中有 queryAllCars 调用的示例,下面在添加2个新的示例方法:
1. queryCar 根据 key 查询某条数据
static void queryCar(HFClient client) throws ProposalException, InvalidArgumentException {
// get channel instance from client
Channel channel = client.getChannel("mychannel");
// create chaincode request
QueryByChaincodeRequest qpr = client.newQueryProposalRequest();
// build cc id providing the chaincode name. Version is omitted here.
ChaincodeID fabcarCCId = ChaincodeID.newBuilder().setName("fabcar").build();
qpr.setChaincodeID(fabcarCCId);
// CC function to be called
qpr.setFcn("queryCar");
String[] args = new String[] {"CAR1"};
qpr.setArgs(args);
Collection res = channel.queryByChaincode(qpr);
// display response
for (ProposalResponse pres : res) {
String stringResponse = new String(pres.getChaincodeActionResponsePayload());
log.info(stringResponse);
}
}
2. createCar 新建数据
static void createCar(HFClient client) throws Exception {
Channel channel = client.getChannel("mychannel");
TransactionProposalRequest tpr = client.newTransactionProposalRequest();
ChaincodeID cid = ChaincodeID.newBuilder().setName("fabcar").build();
tpr.setChaincodeID(cid);
tpr.setFcn("createCar");
tpr.setArgs(new String[]{"CAR11", "Skoda", "MB1000", "Yellow", "Lukas"});
Collection responses = channel.sendTransactionProposal(tpr);
List invalid = responses.stream().filter(r -> r.isInvalid()).collect(Collectors.toList());
if (!invalid.isEmpty()) {
invalid.forEach(response -> {
log.error(response.getMessage());
});
throw new RuntimeException("invalid response(s) found");
}
BlockEvent.TransactionEvent event = channel.sendTransaction(responses).get(60, TimeUnit.SECONDS);
if (event.isValid()) {
System.out.println("--- Transacion tx: " + event.getTransactionID() + " is completed.");
} else {
System.out.println("--- Transaction tx: " + event.getTransactionID() + " is invalid.");
}
}
java写事物提交_fabric-sdk-java 提交事务相关推荐
- 用java写一个日历_使用JAVA写一个简单的日历
JAVA写一个简单的日历 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDa ...
- java网页作业提交_基于JAVA网上作业提交批改系统的设计(SQL)(含录像)
基于JAVA网上作业提交批改系统的设计(SQL)(含录像)(毕业论文15000字,程序代码,SQLserver数据库) 摘 要 随着社会的进步,网络技术的发展为教育界提供了一片崭新的空间,传统的教学 ...
- java 写文件 二进制_简单Java程序向实用程序的过度:二进制文件的读写
File I/O中常见的文件读写: 1.字节流读写文本文件 FileInputStream; FileOutputStream; 2.字符流读写文本文件 FileReader; FileWriter; ...
- java写一个搜索引擎_搜索引擎—-Java实现一个简单的网络爬虫
Java实现一个简单的爬虫程序. package SearchCrawler;import java.util.*;import java.net.*;import java.io.*;import ...
- idea中删除java类并提交_IDEA 删除java类的3种提示
1. 点击 delete 删除文件时,会弹出如下选项: Safe delete (with usage search) Search in comments and strings "Saf ...
- 用java写分段函数_使用Java将分段函数转换为CSV文件
这似乎有用 - 有点.无论如何,这可能是一个好的开始. public class CSVFun { // Where to start the scan of the function. static ...
- java写的家谱_关于java:家谱计划的逻辑
我在Java中创建一个家庭树程序,或者至少试着去做.我已经开设了几个课程: 名字的获取者和设置者性别年龄等 FamilyMember-扩展个人getter以及设置家长和儿童 家庭-由多个族成员和添加方 ...
- java写龟兔赛跑_[阶段一]java编程比赛-龟兔赛跑
题目详情 龟兔赛跑的故事大家都听过,请采用线程的知识,编写代码作比较. 具体要求如下: 1.乌龟和兔子各自一个线程. 2.乌龟每步跑1厘米,兔子每步跳100厘米. 3.兔子每跑到第100步的时候,会休 ...
- 用Java写给女朋友,《用java编写追女朋友》经典句子
关于<用java编写追女朋友>经典句子已为您找到14条,用java编写追女朋友的经典句子是由梁保华收集发布到51追女孩的. 1.爱是冬日里的一缕阳光,让穷人和病人感受到世界的温暖. 2.从 ...
最新文章
- alter system|session set events转储
- 进入DRF和ANGULAR的整合学习,这三篇入门内容一定要学好的
- 在.NET Core中使用MySQL5.7的JSON类型字段
- 11相机不流畅_小米11有望本月发布,小米10退位让贤,256GB版本跌至3799
- 物联网工程实践第二次课堂笔记
- 2.Linux/Unix 系统编程手册(上) -- 基本概念
- Ubuntu安装caffe教程
- Task01:熟悉新闻推荐系统的基本流程(数据库设计)
- cad相对坐标快捷键_47个快捷键+50个CAD技巧助你玩转CAD
- excel合并多个工作表_多个Excel工作表合并到一个工作簿?很简单!
- 《西方确指》明心生极乐、专修净土乃大孝、持咒显空慧
- 电脑的计算机文件打开格式,如何打开zip文件_怎样在电脑上打开zip文件
- 基于MATLAB的数字信号处理(5) FIR数字滤波器设计及软件实现
- android highcharts柱状图实例,Highcharts 基本柱形图
- bp是什么意思贷款利率,lpr+bp利率是什么意思
- 为什么越长大越不想过生日
- unable to load dll 'gdiplus.dll' in docker
- BootStrap Table的JS封装
- BSV 上的点对点结算衍生品:远期合约
- 第917期机器学习日报(2017-03-23)