fabric java chaincode开发步骤!

fabric java chaincode开发步骤!

转载

一. 配置相关环境

操作系统:ubuntu 16.04 LTS

fabric版本:0.6

1.配置fabric网络环境。

笔目前使用fabric0.6版本,基于docker容器配置,网上有各种教程,自己可以百度。

2.安装gradle环境。

安装gradle环境可以参考这一篇文章:http://blog.csdn.net/hejjiiee/article/details/53510209

3.安装REST API客户端

笔者使用firefox浏览器自带的RESTClient插件,具体安装方法可以自行百度。

4.编译java shim层的jar包文件。

(1)下载fabric源码

在OPATH路径下建立以下文件夹


mkdir -p $GOPATH/src/github.com/hyperledger

进入到刚建立的文件夹:


cd $GOPATH/src/github.com/hyperledger

从github上下载fabric0.6源码:


git clone https://github.com/hyperledger/fabric.git -b v0.6

(2)编译jar包

进入以下目录:


cd $GOPATH/src/github.com/hyperledger/fabric/core/chaincode/shim/java

执行以下两条命令编译:


gradle -b build.gradle clean

gradle -b build.gradle build

执行结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LBt3yN2l-1582947363207)(‪C:\Users\Administrator\Desktop\HJJ\2.png)]

这样java chaincode的编译运行环境就搭建好了。

二. 部署java chaincode范例进行测试

这里不过多赘述,可以参考这篇文章的步骤:https://www.ibm.com/developerworks/library/j-chaincode-for-java-developers/

三. 开发自己的java chaincode

1.设置开发环境

可以使用eclipse集成gradle插件进行开发。

(1)安装eclipse

网上有很多教程,自己搜索安装。

(2)安装gradle插件

打开eclipse–>help–>Eclipse Marketplace,然后搜索buildship,如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UXcSYoZQ-1582947363209)(‪C:\Users\Administrator\Desktop\HJJ\3.png)]

然后点击install进行安装,安装完成后重启eclipse。

2.新建gradle项目

如图:

点击next;

点击next;

红圈处填写你的gradle目录,然后点击finish。

此时就会生成名为 ChainCode-test的gradle项目。

3.开发java chaincode

(1) 修改build.gradle文件

打开build.gradle文件,用chaincode任一范例中的build.gradle文件覆盖此文件的内容。此时要注意把build.gradle文件中mainClassName字段改为你相应的目录,如图:

然后进行Refresh操作,如图:

此时项目会自动下载相关的jar包。

(2)新建java文件,开发代码。

代码开发可以用如下模板:

package test;

import org.hyperledger.java.shim.ChaincodeBase;

import org.hyperledger.java.shim.ChaincodeStub;

public class main extends ChaincodeBase {

@Override

public String run(ChaincodeStub stub, String function, String[] args) {

System.out.println(“In run, function:”+function);

switch (function) {

case “init”:

return null;

case “put”:

for (int i = 0; i < args.length; i += 2)

stub.putState(args[i], args[i + 1]);

break;

case “del”:

for (String arg : args)

stub.delState(arg);

break;

case “hello”:

System.out.println(“hello invoked”);

// log.info(“hello invoked”);

break;

}

return null;

}

@Override

public String query(ChaincodeStub stub, String function, String[] args) {

String value=stub.getState(args[0]);

if(value!=null&&!value.isEmpty())

return “key=”+args[0]+" value="+value;

else

return "no value for "+args[0];

}

@Override

public String getChaincodeID() {

String id=“hjj”;

System.out.println("The ChaincodeID is "+id);

return id;

}

public static void main(String[] args) throws Exception {

System.out.println(“starting to test chaincode”+args);

new main().start(args);

}

}

需要导入其他jar包的时候:在自己的 Gradle 项目里建立一个名为 libs (这个名字可以自己定义,不一定非要叫这个名字)的文件夹,把自己本地的 jar 包拷贝到这个文件夹中。

然后在build.gradle配置如下:

dependencies { compile fileTree(dir:‘libs’,include:[’*.jar’])}

然后在此进行进行Refresh刷新操作。

(3)代码开发完成后,进行编译调试。

在Gradle Tasks面板选中要编译的项目,然后展开build,右键单击Run Gradle Tasks进行编译:

若显示如下,则编译成功:

此时在你的gradle项目中会出现build文件夹,此时可直接在此文件夹下运行gradle -b build.gradle run

命令运行程序,也可以进入build–>distributions文件夹,会看到如下两个压缩包:

解压任一压缩包,并进入ChainCode-test–>bin目录,此时可看见可执行文件:

在此目录下打开终端窗口,输入./ChainCode-test命令执行程序。(注意:此时fabric网络需要开启,就会在network窗口中看见链码注册到区块链网络的相关信息)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

世事慕竹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值