因为楼主也是才接触区块链不久只能就自己踩的坑说一下自己的解决方案,如果有什么地方说的不对的,请留言指正。
首先在使用fabric-sdk时确保你的docker镜像和环境没有问题(特别注意版本的问题),一般在运行fabric hyperledger通过e2e-cli的测试链环境应该就没有什么问题了。如果还没有搭建好docker环境的可以参考之前的博客:
https://blog.csdn.net/Box_clf/article/details/82534469
确保环境没有问题后,首先从github上获取fabric-sdk-java的源码:https://github.com/hyperledger/fabric-sdk-java
在终端使用命令获取源码:
git clone https://github.com/hyperledger/fabric-sdk-java.git
获取源码后查看分支如下:
使用命令进行从master切换到指定的版本:
git checkout -b v1.0.0
查看当前所在分支:
git branch
clone得到源码后使用IDEA打开源码项目(maven方式打开)
1.首先是插件的安装:
之前看很多博客IDEA需要安装一个出插件Protobuf Support
主要应该也是为了解决依赖或冲突,具体我也不是很清楚
怎么安装:打开Settings-->Plugins搜索插件名称进行安装,这里就不多说,装好插件后重启IDEA
2.打开pom文件修改部分的配置:
这里参考的是这篇博客:https://blog.csdn.net/PotatoAndPotato/article/details/80805974
博客中用的是1.1版本的,如果是用1.0.0的就可以直接参考下面的配置修改
246行注释掉:
259行注释掉:
38行添加
478行更改插件的版本为2.4.1:
源码中使用的2.3pom文件提示的版本有错所以干脆就换成了最新的版本2.4.1
3.修改ip,因为这里是本地测试所以使用默认的localhost就可以了:
在 src/test/java/testutils/TestConfig.java文件中的99到110行:
如果需要修改就将localhost修改为指定的ip
4.然后打开测试用例End2endIT,所在路径:src/test/java/sdkintegration/End2endIT.java
这时候应该会有缺包的错误提示:
打开Mven Projects找到compile右键点击run mavne build进行编译
编译过后显示BUILD SUCCESS表示编译成功:
这时候再次打开End2endIT就不会有错误提示了,之前缺少的包也正常导入:
到上面的操作完成后就可以打开源码下的脚本文件进行运行了。
1.在终端切到指定路径:cd src/test/fixture/sdkintegration
2.可以看到有一个脚本文件,使用./fabric.sh up进行启动脚本:
这里终端会输出很长一段日志信息,最后显示
(注意:每次为了确保启动脚本创建容器成功,可以在执行./fabric.sh up命令前使用./fabric.sh down清空一次,之前运行e2e-cli测试用例的经验)
3.运行脚本没有问题后就可尽心测试End2endIT类了:
最后出现上图就说明测试类运行通过了,然后就可以进行后续sdk的学习了。