超级账本fabric区块链javaSDK在鲲鹏服务器上的部署

举报
中电福富 发表于 2020/07/03 09:44:24 2020/07/03
【摘要】 ​ ​ ​项目使用超级账本hyperledger fabric 作为底层区块链,使用java-sdk-java来连接区块链的智能合约。为了适配arm架构自己编译sdk依赖的netty包后运行成功。

前提背景:

        项目使用超级账本hyperledger fabric 作为底层区块链,使用java-sdk-java来连接区块链的智能合约。

fabric-sdk-java用了SSL的话,netty就会用到netty-tcnative库,

而这个库内置了一个二进制库:libnetty-tcnative,

官方发布的版本这个库只有三个版本:

         Linux-X86, Windows-X86, MacOSX-X86

为了解决这个问题,就得自己编译一个netty-tcnative。

         <dependency>

                     <groupId>io.netty</groupId>

                     <artifactId>netty-tcnative-boringssl-static</artifactId>

                     <version>2.0.8.Final</version>

         </dependency>

        

#编译环境安装和源码准备

 apt-get install -y maven libapr1 libapr1-dev autoconf automake libtool cmake ninja-build golang openssl1.0 libssl1.0-dev
 git clone https://github.com/netty/netty-tcnative.git
 cd /root/netty-tcnative/
 git checkout -b netty-tcnative-parent-2.0.8.Final


#编译arm架构的tcnative

 mvn clean install -DskipTests=true -pl openssl-dynamic

#查看编译后生成的源文件

 
ll openssl-dynamic/target/native-jar-work/META-INF/native/libnetty_tcnative.so


#创建native文件夹

 cd ../ && mkdir native
 cp /root/netty-tcnative/openssl-dynamic/target/native-jar-work/META-INF/native/libnetty_tcnative.so /root/native/
 cd native/

#改名成对应平台的tcnative

 mv libnetty_tcnative.so libnetty_tcnative_linux_aarch_64.so
 cp libnetty_tcnative_linux_aarch_64.so netty_tcnative_linux_aarch_64.so

#拷贝到webapps下具体的项目中

 
cp -r /root/native/ /root/tomcat8080/webapps/
[项目名称]
/META-INF/


#如果非root用户需要修改到非root用户的权限目录下

 vi /etc/profile
 export LD_LIBRARY_PATH=/root/native/
 source /etc/profile


然后再重新启动项目


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。