Hyperledger Fabric-sdk-java

2018年04月18日 23:36:02 l_ricardo 阅读数 975更多

分类专栏: 区块链 java
 
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

Hyperledger Fabric-sdk-java

本人使用环境为macOS High Sierra 10.13.4Java 9.0.4

目前Hyperledger Fabric官方主要是支持的fabric-sdk-node,并且有较为完善的中英文文档。然而我的项目要求为Java,所有只能下载fabric-sdk-java

Prerequisite:

  1. Apache Maven(可以通过homebrew安装)
  2. JDK 1.8+(推荐就是1.8,项目就是用1.8写成的,用Java 9会和我一样遇见一些奇奇怪怪的问题)
  3. IDEA

下载项目

git clone https://github.com/hyperledger/fabric-sdk-java
  • 1

导入项目

IDEA,以maven工程导入项目,导入依赖。

少量第三方库,可以运行前在根目录下执行以下命令:

mvn dependency:tree
  • 1

运行fabric

cd fabric-sdk-java/src/test/fixture/sdkintegration
./fabric up
  • 1
  • 2

如果出现image不能找到的错误修改fabric-sdk-java/src/test/fixture/sdkintegration 下的docker-compose.yaml中的对应的image tag即可。

运行测试用例

我们挑选比较常用的End2endIT.java运行。

这时你便会发现,我们从clong下来的代码中并没有包含org.hyperledger.fabric.protos这个包。所以需要我们自行下载这个包,并把它添加到我们的项目中的对应位置。这里提供一个源码的下载地址 

我们下载对应的jar文件后解压,导入对应包即可。

由于是JDK的代码,我们在用Java 9编译时有一些选项需要注意

我们需要将字节码文件的版本都设为9。并在命令行参数上加上如下几个参数。

--add-exports java.base/jdk.internal.misc=ALL-UNNAMED --add-modules java.xml.bind --add-modules java.corba
  • 1

此外我们还需要修改项目中的pom.xml文件


sourcetarget中的1.8都改为9如果在编译时还是报差某些类时,自己在pom.xml中加上对应的dependency。比如我差java.annotation我在dependency中就加上了

解决完了这些依赖后我们再次编译就应该能够成功运行了。运行结果如下图。 

Hyperledger Fabric-sdk-java的更多相关文章

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

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

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

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

  3. hyperledger fabric 中java chaincode 支持离线打包

    联盟链由于其本身的特性,目前应用在一些大型国有企业银行比较多.出于安全考虑,这些企业一般会隔离外网环境.所以在实际生产需求中可能存在需要在一个离线的环境中打包安装chaincode的情况. 本文基于这 ...

  4. Hyperledger Fabric SDK use case 1

    ///////////////////////////////////////////////////////////////////////:End2endAndBackAgainIT 1.Crea ...

  5. hyperledger fabric超级账本java sdk样例e2e代码流程分析

     一  checkConfig  Before     1.1  private static final TestConfig testConfig = TestConfig.getConfig() ...

  6. Hyperledger Fabric 1.0 从零开始(十二)——fabric-sdk-java应用【补充】

    在 Hyperledger Fabric 1.0 从零开始(十二)--fabric-sdk-java应用 中我已经把官方sdk具体改良办法,即使用办法发出来了,所有的类及文件都是完整的,在文章的结尾也 ...

  7. Hyperledger Fabric 1.0 从零开始(十二)——fabric-sdk-java应用

    Hyperledger Fabric 1.0 从零开始(十)--智能合约 Hyperledger Fabric 1.0 从零开始(十一)--CouchDB 上述两章,最近网上各路大神文章云集,方案多多 ...

  8. 使用Node.JS访问Hyperledger Fabric的gRPC服务

    在即将正式发布的Hyperledger Fabric SDK 1.0中,Hyperledger Fabric通过gRPC提供服务接口以取代现有的REST API.本文介绍了如何使用Node.JS访问H ...

  9. Hyperledger Fabric 2.x Java区块链应用

    一.说明 在上一篇文章中 <Hyperledger Fabric 2.x 自定义智能合约> 分享了智能合约的安装并使用 cli 客户端进行合约的调用:本文将使用 Java 代码基于 fab ...

  10. 用Hyperledger Fabric(超级账本)来构建Java语言开发区块链的环境

    面向 Java 开发人员的链代码简介 您或许听说过区块链,但可能不确定它对 Java™ 开发人员有何用.本教程将帮助大家解惑.我将分步展示如何使用 Hyperledger Fabric v0.6 来构 ...

随机推荐

  1. centos与debian网卡

    debian    /etc/network/interfaces # This file describes the network interfaces available on your sys ...

  2. Spring创建对象的方法

    1.利用无参构造器创建对象. 在代码中有一个学生类Student.java package no1; public class Student { public Student(){ System.o ...

  3. Python list 遇到的问题

    1.list“+” 运算 <list += > diff. <ndarray +=> list1 += list2是追加,而不是加法运算 list1 = [0,0,0] lis ...

  4. Ubuntu18.04 server安装步骤

    Ubuntu18.04 server安装步骤 1. select a language default 2.  select your location default 3. configure th ...

  5. 刘汝佳dicnic模板

    #include<iostream> #include<cstdio> #include<algorithm> #include<vector> #in ...

  6. LeetCode 122. 买卖股票的最佳时机 II(Best Time to Buy and Sell Stock II)

    题目描述 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参与多笔交易(你 ...

  7. legend3---7、videojs的使用配置的启示是什么

    legend3---7.videojs的使用配置的启示是什么 一.总结 一句话总结: 很多东西网上都有现成的,直接拿来用就好,效果是又快又好 1.用auth认证登录的时候报 "validat ...

  8. JVM | 分代垃圾回收策略的基本概念以及过程

    一.为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的.因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率. 在Java程序运行的过程中,会产生大量的对 ...

  9. springboot-mvc:入参日期类型转换String->Date

    4种方式: 1.通过在application.ym中配置 spring.mvc.data-format: yyyy-MM-dd HH:mm:ss ,使用的是ParserConverter 优点:简单的 ...

  10. Java:基础知识点

    1. 面向对象的特征 (1)封装:把过程和数据包围起来,对数据的访问只能通过已定义的界面.即现实世界可以被描绘成一系列完全自治.封装的对象,这些对象通过一个受保护的接口访问其他对象:(2)继承:是一种 ...