超级账本fabric区块链javaSDK在鲲鹏服务器上的部署
【摘要】 项目使用超级账本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)