尝试使用fabric-sdk-java来连接fabric区块链。

fabric的安装可参考 http://www.cnblogs.com/maobuji/p/7204446.html

环境准备:

JDK1.8、IDEA(带有maven,支持jdk1.8的就可以)

IDEA插件安装:

      需要安装Protobuf Support插件

      进入IDEA环境后,选择file->setting

打开后搜索Protobuf Support安装即可。装好后重启IDEA。

fabric-sdk-java工程包下载:

https://github.com/hyperledger/fabric-sdk-java  选择clone or download下载最新的代码,也可以到release中下载对应版本的代码

解压后目录如下:

 导入工程:

选择源代码工程

然后一路next下去,工程就导入了。

在pom.xml中删除以下内容:
(1.0.1中使用maven编译,这里会报错。所以从POM.xml暂时删除掉了这个插件,如果有人知道如何配置,请给我留言)

            <plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>2.2.2</version>
<executions>
<execution>
<id>get-the-git-infos</id>
<goals>
<goal>revision</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
<configuration>
<dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
</configuration>
</plugin>

 编译

     点击左下角的小方块,选择Maven Projects

在打开的窗口里,选择protobuf:compile右键运行,之后在运行工程的compile

     

会新生成一个target目录,如果包都生成出来了,应该就是成功了。

运行测试用例

    查找End2endIT.java 进行单元测试,提示连接不上,工程的基本设置就完成了。下面的章节进行sdk测试类的分析

连接地址可以在测试包的

org.hyperledger.fabric.sdk.testutils.TestConfig类中找到

但是7074是ca的配置路径,e2ecli例子中并没有ca的配置,这部分还酉继续研究

由于SDK默认的连接例子,是自带在SDK包里的。所以要关闭掉之前启动的e2ecli的例子了。

 准备测试服务

创建一个目录,然后将fabric-sdk-java放进去并解压

cd fabric-sdk-java-1.0./src/test/fixture/sdkintegration/

启动样例即可

sh fabric.sh

回到java环境,到testConfig.java中修改IP地址,将localhost都改为,fabric服务器的地址。

运行测试

运行End2endIT单元测试,如果运行正常应该是如下结果,之后就可以去看单元测试是如何使用sdk与fabric交互的了

补充内容:

maven update以后,pom文件可能会报错。

(1)com.google.protobuf:protoc:exe:${os.detected.classifier}:3.0.0

这里是因为${os.detected.classifier}没有取到合理的值,可以参考这个文档进行设置   https://github.com/trustin/os-maven-plugin

${os.detected.classifier} 的值是由 ${os.detected.name}-${os.detected.arch}  构成的

${os.detected.name}的值是由${os.name}转化而来的。转化规则在链接中

${os.detected.arch}的值是由${os.arch}转化而来的,转化规则也在链接中

可以使用如下java代码获得当前操作系统的值:

System.out.println(System.getProperty("os.name"));
System.out.println(System.getProperty("os.arch"));

Windows 7    amd64  需要被转换为:windows-x86_64

取得了${os.detected.classifier}的值以后,在pom的properties中增加<os.detected.classifier>windows-x86_64</os.detected.classifier>即可

注意:不同操作系统的值,有所不同,请根据转换表进行转换

fabric-sdk-java在IDEA中的使用的更多相关文章

  1. 区块链:基于Hyperledger Fabric的 java 客户端开发(java sdk /java api server/java event server)

    fabric针对java 开发的部分支持不是很友好.基于目前较为稳定的fabric 1.4版本,我们封装了一个java sdk,apiserver,eventServer 封装java sdk的主要目 ...

  2. [Android Pro] 开发一流的 Android SDK:Fabric SDK 的创建经验

    cp from : https://academy.realm.io/cn/posts/oredev-ty-smith-building-android-sdks-fabric/ Ty Smith T ...

  3. Windows下fabric sdk连接Linux上fabric网络的调试过程

    上个月刚入职一家公司从事区块链研发工作,选型采用Hyperledger Fabric作为开发平台.团队的小组成员全部采用的是在VirtualBox上面安装桌面版的Ubuntu 16.04虚拟机,开发工 ...

  4. HyperLedger/Fabric SDK使用Docker容器镜像快速部署上线

    HyperLedger/Fabric SDK Docker Image 该项目在github上的地址是:https://github.com/aberic/fabric-sdk-container ( ...

  5. Java应用程序中的声音播放

    声音可以创造意境,触发遐想,当与虚拟图像相结合时,更加可以让整个世界充满幻觉,声音是多媒体技术的基础. 播放声音是Java对多媒体的支持一个重要部分,它支持的声音文件类型主要有: AU - (扩展名为 ...

  6. 海康SDK JAVA版本调用步骤及问题介绍

    一.前言 本文为海康SDK JAVA版本Demo的介绍,采用Eclipse运行,以及一些问题记录. 海康SDK版本:SDK_Win32 Eclipse版本:Mars2.0 JDK版本:1.8.0_15 ...

  7. JAVA WEB项目中各种路径的获取

    JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报  分类: JAVA开发(41)  1.可以在s ...

  8. 揭开Java IO流中的flush()的神秘面纱

    大家在使用Java IO流中OutputStream.PrintWriter --时,会经常用到它的flush()方法. 与在网络硬件中缓存一样,流还可以在软件中得到缓存,即直接在Java代码中缓存. ...

  9. JAVA安装过程中出现的“javac不是内部或外部指令”的解决方法

    近来重新安装了JAVA,安装过程中出现问题,网上找到解决办法,汇总发布. 解决流程: 1.确定自己的环境变量设置没问题,没有出现遗漏 : . 等情况 (具体环境变量设置百度) 2.环境变量设置后 ,d ...

  10. Java Web开发中MVC设计模式简介

    一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...

随机推荐

  1. 虚拟机怎么发送ctrl+alt+delete组合键

    相信各位It的从业人员都遇到过安装了虚拟机搭建测试环境,可是在使用windows服务器版本操作系统的时候.出现要求发送ctrl+alt+delete组合键,才能登陆操作系统.为此咗嚛提供3个方法给您解 ...

  2. hadoop append 追加文件错误

    java.io.IOException:Failed to replace a bad datanode on the existing pipeline due to no more good da ...

  3. GetClass与RegisterClass的应用一例

    利用GetClass与RegisterClass可以实现根据字符串来实例化具体的子类,这对于某些需要动态配置程序的场合是很有用的.其他的应用如子窗体切换,算法替换等都能得到应用. unit Examp ...

  4. PHP 数据运算类型都有哪些?

    四种标量类型:布尔型 boolean $bo=TRUE; $bo=FALSE;整型 integer  $bo=1; $bo=-12;浮点型 float/double  $bo=1.001; $bo=3 ...

  5. C++进阶--类的继承

    //############################################################################ /* * 公有,保护,私有继承 */ cl ...

  6. Ubuntu 14.10 下使用IDEA开发Spark应用

    1 环境准备 1.1 下载IDEA,可在官网下载 1.2 IDEA与Eclipse有点不同,IDEA中的New Projects相当于Eclipse中的workspace,New Module才是新建 ...

  7. Hive格式各种格式下不同压缩算法的比较

    原始Text格式的hive分区大小为119.2G. 压缩算法 Text格式 Parquet格式 ORC RCFile 不压缩 119.2G 54.1G 20.0G 98G Snappy压缩 30.2 ...

  8. jquery add() 和js add()

    HTML DOM add() 方法 HTML DOM Select 对象 定义和用法 add() 方法用于向 <select> 添加一个 <option> 元素. 语法 sel ...

  9. 学习笔记之Python最简编码规范

    Python最简编码规范 - 机器学习算法与Python学习 https://mp.weixin.qq.com/s/i6MwvC4jYTE6D1KHFgBeoQ https://www.cnblogs ...

  10. 学习笔记之JavaScript

    JavaScript 教程 | 菜鸟教程 http://www.runoob.com/js/js-tutorial.html JavaScript 是 Web 的编程语言. 所有现代的 HTML 页面 ...