源码安装PlatON
本文档主要是针对有能力在PlatON区块链上进行源代码编译的用户。
PlatON支持Windows和Ubuntu下进行源码编译安装。
Windows源码编译#
Windows编译环境需要符合以下条件:
- git:
2.19.1以上 - go语言开发包:
go(1.22+) - mingw:
mingw(V8.1.0) - cmake:
3.0+
可自行安装以上编译环境,在编译PlatON源码之前请确保以上环境可正常运行。
也可使用
Chocolatey辅助安装编译环境(如果你还没有chocolatey,可以按照https://chocolatey.org上的说明进行安装),用管理员身份启动PowerShell,然后执行以下命令:安装git:
choco install git安装golang:
choco install golang安装mingw:
choco install mingw安装cmake:
choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System'利用
chocolatey包管理器安装的软件大部分有默认的安装路径,部分软件可能会有各种各样的路径,这取决于软件的发布者。安装这些包将修改Path环境变量。最后安装路径可查看PATH,某些机器环境可能在 PATH 中找不到这些工具的安装路径,此时需手动添加。安装完之后请确保已安装的Go版本为1.22(或更高版本)。
注意:以下命令均需在
Git-bash环境运行, 在任意目录下,鼠标右键,选中Git Bash Here,弹出Git Bash运行窗口。
- 获取源码
获取源码放到GOPATH路径下,其中master为分支名称,届时切换到实际的分支:
mkdir -p $GOPATH/src/github.com/PlatONnetworkcd $GOPATH/src/github.com/PlatONnetworkgit clone -b master https://github.com/PlatONnetwork/PlatON-Go.git --recursive- 添加bls依赖库到环境变量
echo 'export PATH=$PATH:"$GOPATH/src/github.com/PlatONnetwork/PlatON-Go/crypto/bls/bls_win/lib"' >> ~/.bashrcsource ~/.bashrc- 编译
cd $GOPATH/src/github.com/PlatONnetwork/PlatON-Gogo run build/ci.go install ./cmd/platongo run build/ci.go install ./cmd/platonkey编译完成之后在PlatON-Go/build/bin目录下会生成platon、platonkey可执行文件,将这两个可执行文件拷贝到自己工作目录运行即可。
重复编译会覆盖之前生成的可执行文件。
注:建议windows版本仅用于开发测试,正式生产环境请使用ubuntu版本。
Ubuntu源码编译#
step1. 安装编译环境(Ubuntu):
- 系统版本:
Ubuntu 18.04.1 及以上 - git:
2.19.1及以上 - 编译器:
gcc(4.9.2+)、g++(5.0+) - go语言开发包:
go(1.22+) - cmake:
3.0+
step2. 获取PlatON源码:
git clone -b master https://github.com/PlatONnetwork/PlatON-Go.git --recursivestep3. 安装依赖库:
安装golang
cd /usr/localsudo wget https://go.dev/dl/go1.18.7.linux-amd64.tar.gzsudo rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.7.linux-amd64.tar.gzsudo vim /etc/profile// 将下面一行加到文件末尾export PATH=$PATH:/usr/local/go/binsource /etc/profilesudo apt update sudo apt install -y cmake llvm g++ libgmp-dev libssl-devstep4. 编译:
cd PlatON-Go make all编译完成之后在./build/bin目录下会生成platon, platonkey等一系列可执行文件。
step5. 拷贝二进制:
sudo cp -f ./build/bin/platon /usr/bin/sudo cp -f ./build/bin/platonkey /usr/bin/源码编译成功!