HHyperledger Fabric 之 TLS (fabric-java-sdk)使用grpcs方式访问fabric

我在很多fabric的技术群中,很多使用javasdk连接fabric的同友,初始的时候很多都没有成功的使用TLS进行区块链交易;

是sdk不支持,还是我们没有找到解决方案?

 

其实不然,我这里使用的是fabric-sdk1.2的版本,是可以的;而且sdk的源码的测试用例也都是使用tls的;那么他肯定是可以完成TLS交易的;

我这里使用的环境是单机的fabric1.4.0版本;java-sdk使用是1.2版本的.

前提,fabric1.4.0使用tls模式建立的环境,这里为了快速和方便,我使用了first-network这个demo。

1,环境情况,具体搭建方式就不追溯,可以在网上的其他博客查到相关部署方式。

    

2,java-sdk版本

   

 3,使用TLS链接的关键

   在pom.xml文件中增加<os.detected.classifier>windows-x86_64</os.detected.classifier>

   这里说明一下windows-x86_64,在netty-tcnative是没有32位的包,所以一定要保证你的jvm是64位的,否则,你在允许请求的是会一致报错,没有找到32位的它。

  使用  java -d64检查你当前jvm是否是64位,如果不是则会是类似下述的错误

   

   如果是64,则会是下述的信息

   

 

 

   

 

 

   建议,pom依赖,参考fabric-sdk的pom依赖

   4,创建channel连接

    支持TLS连接,关键的几个配置:clientCertFile、clientKeyFile、pemFile

   orderer设置属性 :       peer设置属性:

    

对mycc合约进行查询:

    查询结果:

    

   综上:

    1,pom依赖,要按照fabric-java-sdk的依赖方式进行依赖,一面因为依赖的包版本等一些问题导致无法完成TLS访问

    2,netty_tcnative_windows_x86_64的依赖关系,jvm一定是64位的

    3,创建channel链接的时候,orderer和peer的属性设置一定要指定其的相关tls证书。

posted @ 2019-07-22 14:11  慕斯~long  阅读(2004)  评论(0编辑  收藏  举报