【干货干货】hyperledger fabric 之TLS (Fabric-java-sdk)
我在很多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证书。