这次的博客是为了记录在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
查看评论