尝试使用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. tomcat端口号被占用的问题

    错误原因:8080端口被其他的应用占用! 在网上查了下解决方案,有些说在任务管理窗口关闭javaw.exe,有些说shutdown一下tomcat,亲测在某些场合下可用. 下面是摘自其它博客园里文章的 ...

  2. idea补丁破解

    1.下载JetbrainsCrack-2.9-release-enc.jar破解补丁,下载地址:http://idea.lanyus.com 2.将其放在你的安装 idea下面的根目录下面 3.修改根 ...

  3. mha error

    MasterFailover.pm 1473 $ret =1474 $_server_manager->change_master_and_start_slave( $target, $late ...

  4. 分页sql写法【只用最新的】

      offset m rows   FETCH NEXT n ROWS ONLY m=(pageindex-1)*pagesize n=pagesize sql server 2012以上适用.

  5. 将Json对象数组转化成JS Array数组

    private format(cards:any):Array<any>{ var result = new Array(); cards.forEach(element => { ...

  6. 阿里云ECS安装Kubernetes问题收集与解答

    问题1 kubernetes pod启动报错open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such fil ...

  7. PAT 乙级 1012 数字分类 (20) C++版

    1012. 数字分类 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一系列正整数,请按要求对数字进 ...

  8. spring4.3新注解之:@RequestMapping变种(@GetMapping,@PostMapping,@PutMapping,@DeleteMapping,@PatchMapping)

    Spring 4.3 中引进了下面的注解 @RequestMapping 在方法层级的变种,来帮助简化常用 HTTP 方法的映射,并更好地表达被注解的方法的语义.比如,@GetMapping可以读作 ...

  9. HTML背景图片自适应

    由于<body>标签的图片不能够拉伸, 解决办法: 1.图片不够大,又background属性不能拉伸图片: 2.只能用个div,把其z-index值设为负,并使这个div大小为整个bod ...

  10. optparse模块解析命令行参数的说明及优化

    一.关于解析命令行参数的方法 关于“解析命令行参数”的方法我们一般都会用到sys.argv跟optparse模块.关于sys.argv,网上有一篇非常优秀的博客已经介绍的很详细了,大家可以去这里参考: ...