这次的博客是为了记录在hyperledger中开发JavaSDK的过程,至于实验环境的搭建,链码的开发和部署等内容参见博客: 区块链(ubuntu)-Hyperledger Fabric实验环境搭建,修改chaincode,部署chaincode以及测试chaincode(JAVA),其主要作用就是为了在真实开发中直接使用Java工具类的方法调用链码!希望各位觉得这篇博客对你的学习有帮助的,能一键三连,创作不易!
开发example02普通方法的SDK
-
接下来的一切的前提都是完成前面博客内容的前提下,重新执行一下部署和测试的代码
- 注意:每次重新部署链码的时候需要删除
example02_java项目下的wallet文件夹 - 所有命令在
ubuntu用户下操作,出现一些莫名其妙的问题则在命令前面加sudo
. ./init.sh #注意:原来的channel名字叫mycc_java02,但是下面SDK中写的是mycc02_java,因此部署的时候将channel的名字改为mycc02_java . scripts/deploy_chaincode.sh java ${PWD}/chaincode/chaincode_example02/java mycc02_java . scripts/test_example02.sh mycc02_java - 注意:每次重新部署链码的时候需要删除
-
配置maven环境
cd /tmp wget https://mirrors.cnnic.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz sudo tar zxf apache-maven-3.6.3-bin.tar.gz sudo mv apache-maven-3.6.3 /opt/apache-maven sudo cat >> ~/.bashrc <<EOF # setup maven environments # ===================== export PATH=$PATH:/opt/apache-maven/bin export MAVEN_HOME=/opt/apache-maven # ===================== EOF source ~/.bashrc

-
配置maven镜像地址
vim /opt/apache-maven/conf/settings.xml

-
打成jar包
cd /home/ubuntu/workspace/app/example02_java/ mvn package

-
删除默认的缺省管理员以及管理员登录,和在Org1上注册一个新的user01
java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.EnrollAdmin java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.RegisterUser

-
测试查询和修改的SDK
java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.InvokeQuery java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.InvokeTransfer

开发example01的SDK
-
部署example01的链码
. ./init.sh . scripts/deploy_chaincode.sh java ${PWD}/chaincode/chaincode_example01/java mycc_java . scripts/test_example01.sh mycc_java -
编写测试的SDK:新建
example01_java的maven项目,按照example02的方式编写测试的SDK,下图为其中调用InvokeHi的工具类

-
将编写好的maven项目打成
jar包cd /home/ubuntu/workspace/app/example01_java/ mvn package -
删除默认的缺省管理员以及管理员登录,和在Org1上注册一个新的user01,以及测试Hi方法。
java -classpath ./target/example01_java-1.0-SNAPSHOT-jar-with-dependencies.jar example01.EnrollAdmin java -classpath ./target/example01_java-1.0-SNAPSHOT-jar-with-dependencies.jar example01.RegisterUser java -classpath ./target/example01_java-1.0-SNAPSHOT-jar-with-dependencies.jar example01.InvokeHi

开发example02中Recharge方法的SDK、连接和使用org2节点
-
重新部署
example02的链码 -
编写
Recharge的调用工具类

-
将编写好的maven项目打成jar包

-
测试
java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.EnrollAdmin java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.RegisterUser java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.InvokeQuery java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.InvokeRecharge java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.InvokeQuery

-
将
example02中所有代码中调用链码的工具类初始的常量中的org1改成org2,删除target文件夹后重新打包maven项目 -
测试1
java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.EnrollAdmin java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.RegisterUser java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.InvokeQuery

-
测试2
java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.InvokeTransfer java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.InvokeQuery java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.InvokeRecharge java -classpath ./target/example02-1.0-SNAPSHOT-jar-with-dependencies.jar example02.InvokeQuery

转载:https://blog.csdn.net/Ferronzhu/article/details/117092030
查看评论