鲲鹏是华为海思发布的基于 ARM 架构授权,由华为自主设计完成的鲲鹏芯片。
安装 aarch64 交叉编译器
参照华为云论坛 如何搭建鲲鹏开发环境。
wget https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64-linux-gnu/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz
tar -xvf gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz
mv gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu /opt/
export PATH=/opt/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu/bin:"${PATH}"
配置 Rust 交叉编译环境
rustup 安装 aarch64 的 target:
rustup target add aarch64-unknown-linux-gnu
修改 ~/.cargo/config (如果没有这个文件,则创建)写入:
[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc"
openssl
从 openssl 网站下载源码:
wget https://www.openssl.org/source/openssl-1.1.1e.tar.gz
tar zxvf openssl-1.1.1e.tar.gz
mv openssl-1.1.1e /opt/
交叉编译:
cd /opt/openssl-1.1.1e
CC=gcc CROSS_COMPILE=aarch64-linux-gnu- ./config no-asm shared
注意:这里要手工修改一下生成的 Makefile,删除两处 -m64
的编译选项。
编译:
make
设置两个环境变量:
export OPENSSL_LIB_DIR=/opt/openssl-1.1.1e/
export OPENSSL_INCLUDE_DIR=/opt/openssl-1.1.1e/include/
snappy
snappy 可以直接下载编译好的二进制版本。
wget http://mirror.archlinuxarm.org/aarch64/extra/snappy-1.1.8-1-aarch64.pkg.tar.xz
tar Jxvf snappy-1.1.8-1-aarch64.pkg.tar.xz
直接将对应的动态库放入交叉编译器的 lib 目录下
cp usr/lib/libsnappy.so /opt/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/lib64/
make aarch64_debug
生成的发布件在 target/aarch64_install
目录下。
服务器
可以在 华为云 上购买使用鲲鹏处理器的云主机,推荐型号为 kc1.xlarge.2,配置为 4c8g。
操作系统
CITA 当前支持 Ubuntu 18.04,请在创建云主机时选择该操作系统。
安装依赖
替换软件源为中科大镜像。替换 /etc/apt/sources.list 中原有的 url 为 http://mirrors.ustc.edu.cn/ubuntu-ports
。
注意:修改之前,最好先备份一下原有文件。
sudo apt update
sudo apt install rabbitmq-server libsnappy-dev
运行 CITA
上传前面编译好的 aarch64_install
目录到鲲鹏服务器。
生成链的配置: solc 等配置工具暂时还不支持 arm,因此生成链的配置还需要在 x86 版本上进行,然后上传到 aarch64_install
目录里面。
运行:
./bin/cita bebop setup test-chain/0
./bin/cita bebop start test-chain/0
查看日志,确认可以正常出块:
$ tail -100f test-chain/0/logs/cita-chain.log
2020-03-23 - 17:56:53 | cita_chain - 107 | INFO - CITA:chain
2020-03-23 - 17:56:53 | cita_chain - 108 | INFO - Version: 20.2.0-7d346ea4
2020-03-23 - 17:56:53 | amqp::session - 196 | INFO - Session initialized
2020-03-23 - 17:56:53 | amqp::session - 196 | INFO - Session initialized
2020-03-23 - 17:56:53 | core::libchain::chai - 371 | INFO - chain config: Config { prooftype: 2 }
2020-03-23 - 17:56:53 | core::libchain::chai - 386 | INFO - get chain max_store_height : 0 current_height: 0
2020-03-23 - 17:56:57 | core::libchain::chai - 1358 | INFO - new chain status height 1, hash ad4a19a94253cdcca6da112ac84aa4aa75d59ef1436de2336106e1b7a78a409b
2020-03-23 - 17:57:00 | core::libchain::chai - 1358 | INFO - new chain status height 2, hash 5265652fdc861b7b505d63c8b374e43d0911f9e01f7ec464b55a054db0b808af
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。