phala基础(1)-KhalaParachain编译

项目khala-parachain 为phala的节点部分,本文主要讲解该节点的编译及调试。部署等请参考我早期别的文章

简介

这里说明下,编译的时候,老老实实用ubuntu20.04的机器来编译。
不要考虑windows、mac等别的系统。各种环境问题处理到最后都不一定能处理好。
也不建议用docker编译,容器限制,编译速度会很慢,不是一般的慢(windows下我用docker编译成功了;但在mac下,docker死活编译不成功)。
想用docker镜像编译的,可以参考我的这个Dockefilekhala-node docker
本文介绍在ubuntu20.04macos Monterey 12.5(intel)下的编译,其中macos你不一定能编译成功,只是结合官方给出个编译思路

Ubuntu 20.04编译步骤

  1. 安装rust
    包括相关环境变量,请参考:Rust基础(1)-环境搭建及HelloWorld
  2. 安装需要的工具
1
apt-get install -y apt-utils apt-transport-https software-properties-common readline-common curl vim wget gnupg gnupg2 gnupg-agent ca-certificates cmake pkg-config libssl-dev git build-essential llvm clang libclang-dev
  1. 安装rust的nightly版,当前我根据phala官方的节奏,选择的nightly-2022-07-11这个版本
1
2
3
4
5
6
7
# 安装nightly版
rustup toolchain install nightly-2022-07-11
#将编译环境切换为nightly版
rustup default nightly-2022-07-11
# 手动添加依赖(该依赖一定是在这里手动添加的)
rustup target add wasm32-unknown-unknown
cargo install wasm-pack
  1. 进入项目khala-parachain 根目录进行编译:
1
2
3
4
# 测试编译
cargo build --profile testnet
# 生产编译
cargo build --profile production

一路等待编译完成即可,我大概等了40分钟

macos Monterey 12.5(intel)编译步骤

这个是官方2022-07-24给出的编译方案,目前看可以编译成功:

  1. 安装llvm
1
2
3
4
5
brew install llvm
# 具体brew的应用安装位置需要你根据你的实际情况来找
cd /usr/local/Cellar/llvm/14.0.6_1/bin
ln -s llvm-ar ar
ln -s llvm-ar ranlib

llvm安装完毕后,根据提示,加入环境变量(你根据自身实际提示来操作):

1
2
3
4
5
6
7
8
vim ~/.bash_profile

export LDFLAGS="-L/usr/local/opt/llvm/lib"
export CPPFLAGS="-I/usr/local/opt/llvm/include"

export PATH="/usr/local/opt/llvm/bin:$PATH"

source ~/.bash_profile
  1. 安装rust
    包括相关环境变量,请参考:Rust基础(1)-环境搭建及HelloWorld
  2. 安装rust的nightly版,当前我根据phala官方的节奏,选择的nightly-2022-07-11这个版本
1
2
3
4
5
6
7
# 安装nightly版
rustup toolchain install nightly-2022-07-11
#将编译环境切换为nightly版
rustup default nightly-2022-07-11
# 手动添加依赖(该依赖一定是在这里手动添加的)
rustup target add wasm32-unknown-unknown
cargo install wasm-pack
  1. 进入项目khala-parachain 根目录进行编译:
1
2
3
4
# 测试编译
cargo build --profile testnet
# 生产编译
cargo build --profile production

一路等待编译完成即可,我大概等了40分钟
mac这个我编译成功了

总结

本文编辑完成

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2017-2023 Jason
  • Visitors: | Views:

谢谢打赏~

微信