【hyperledger-fabric】部署Java代码智能合约

发布时间:2024年01月04日

简介

讲述一下根据B站视频 hyperledger-fabric【2】java 合约开发 。进行项目部署的流程以及遇到的问题。

项目部署的流程

根据视频教程我们可以得知大致的步骤,视频中采用的是up主自己编写的代码,但我们也可以了解到fabric-samples自带文件夹中包含了原始链码包。如下图。分别为go语言的链码,java链码,js链码,ts链码。
在这里插入图片描述
进入到java中可以看到是一个gradlew编写的java项目,B站的教学视频使用的代码是将这里的代码进行了更改,编写成了maven编写的代码。我这里和B站教学的视频不一样的是,我并没有采用git clone 的方式去下载视频中的代码,我是将代码使用maven工具进行打包成jar,将jar上传到

/app/fabric-samples-2.4.8/chaincode/hyperledger-fabric-contract-java-demo

该目录下,然后跟随B站视频执行相关的命令。

这里补充一个知识点:如果按照B站视频的方式进行安装,由于是线上下载依赖,所以会非常的缓慢,但是如果按照jar包的方式下载依赖,则会非常迅速,原因就是算法匹配的问题,无论是通过jar包的方式上传还是通过git clone的方式,都是按照视频中的命令执行顺序即可【建议使用jar包的方式进行部署,速度较快

遇到的问题

第二小节遇到的问题首先就是执行命令:提交链码定义到通道之后。命令如下

peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name hyperledger-fabric-contract-java-demo --version 1.0 --sequence 1 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt

会出现docker容器启动不起来的情况,没错就是这两个容器。
在这里插入图片描述
这两个容器就是会自己终结掉,起初我认为是内存不够或者是其他的报错,结果docker logs <容器id> 发现原来报错信息是:

Failed to start thread “GC Thread#0“ - pthread create failed (EPERM) for attributes: stacksize: 102

经过百度才知道原来是docker的版本过于低,需要提高docker的版本,可以参考我编写的博客【docker】linux部署docker。重新部署一下docker就可以解决这个问题了。

文章来源:https://blog.csdn.net/weixin_45477146/article/details/135367584
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。