本文由万向区块链CTO罗荣阁撰写。
目录
PlatON在CentOS上编译部署
1. CentOS 环境准备
1.1. 使用rpm 安装devtoolset-7
1.2. 使用rpm 安装dos2unix
1.3. 准备PlatON代码
1.4. 确保build脚本正常
1.5. 准备mpclib
1.6. 编译PlatON
1.7. 重新编译前的清理工作
2. 初始化和运行PlatON
2.1. PlatON节点初始化
2.1.1. 生成 account 和 key pair
2.1.2. 配置初始化文件
2.1.3. 初始化PlatON
2.2. 启动 PlatON 节点
2.3. platon help 信息
2.4. 重新初始化PlatON节点
3. CentOS升级gcc原始步骤
3.1. 安装CentOS-release-scl
3.2. 使用yum 安装devtoolset-7
3.3. 编译获得静态库libstdc++.so.6
PlatON在CentOS上编译部署
PlatON官网上主要支持在 Ubuntu 和 Windows 环境中编译部署,但是也会有在CentOS上编译部署的需要。本文主要介绍了在CentOS上的环境准备、编译生成可执行文件和运行节点程序的过程。PlatON 官方代码库更新速度较快,有可能官方代码做出了一些设置变化,如果有步骤不能正确执行,可以参考 PlatON 官网具体信息。
1. CentOS 环境准备
Ubuntu在社区中很流行,但CentOS在企业级市场中占有较大优势。目前,CentOS在AWS、阿里云、UCloud 云服务商中能够使用的最高官方版本是CentOS 7.5。
本文就在CentOS 7.5下编译部署PlatON。
1.1. 使用rpm 安装devtoolset-7
因为PlatON的WASM库和MPC库依赖,开发和编译环境需要支持C++14。GCC 6.1版本以上是默认支持C++14。 https://www.gnu.org/software/gcc/projects/cxx-status.html#cxx14
CentOS 7.5的默认GCC版本为4.8.5,开发和编译PlatON需要升级GCC。Redhat官方的升级方法是通过devtoolset。
- 2018年1月,devtoolset 6 发布。
- 2018年5月,CentOS 7.5 发布。
- 2018年9月,devtoolset 7 发布。
https://access.redhat.com/solutions/19458
http://mirror.centos.org/centos/7/sclo/x86_64/rh/devtoolset-7/
https://www.softwarecollections.org/en/scls/rhscl/devtoolset-7/
考虑以上的发布时间顺序、相互具体版本要求,选择在CentOS 7.5中安装devtoolset 7。
将以下33个rpm拷贝到一个目录中,再执行:
$ sudo rpm -ivh boost-date-time-1.53.0-27.el7.x86_64.rpm efivar-libs-31-4.el7.x86_64.rpm kernel-debug-devel-3.10.0-862.el7.x86_64.rpm libgfortran4-7.2.1-1.1.1.el7.x86_64.rpm libquadmath-4.8.5-28.el7.x86_64.rpm mokutil-12-1.el7.centos.x86_64.rpm scl-utils-20130529-18.el7_4.x86_64.rpm devtoolset-7-7.1-4.el7.x86_64.rpm devtoolset-7-binutils-2.28-11.el7.x86_64.rpm devtoolset-7-dwz-0.12-1.1.el7.x86_64.rpm devtoolset-7-dyninst-9.3.2-3.el7.x86_64.rpm devtoolset-7-elfutils-0.170-5.el7.x86_64.rpm devtoolset-7-elfutils-libelf-0.170-5.el7.x86_64.rpm devtoolset-7-elfutils-libs-0.170-5.el7.x86_64.rpm devtoolset-7-gcc-7.3.1-5.13.el7.x86_64.rpm devtoolset-7-gcc-c++-7.3.1-5.13.el7.x86_64.rpm devtoolset-7-gcc-gfortran-7.3.1-5.13.el7.x86_64.rpm devtoolset-7-gdb-8.0.1-36.el7.x86_64.rpm devtoolset-7-libquadmath-devel-7.3.1-5.13.el7.x86_64.rpm devtoolset-7-libstdc++-devel-7.3.1-5.13.el7.x86_64.rpm devtoolset-7-ltrace-0.7.91-2.el7.x86_64.rpm devtoolset-7-make-4.2.1-3.el7.x86_64.rpm devtoolset-7-memstomp-0.1.5-5.1.el7.x86_64.rpm devtoolset-7-oprofile-1.2.0-2.el7.1.x86_64.rpm devtoolset-7-perftools-7.1-4.el7.x86_64.rpm devtoolset-7-runtime-7.1-4.el7.x86_64.rpm devtoolset-7-strace-4.17-7.el7.x86_64.rpm devtoolset-7-systemtap-3.1-4s.el7.x86_64.rpm devtoolset-7-systemtap-client-3.1-4s.el7.x86_64.rpm devtoolset-7-systemtap-devel-3.1-4s.el7.x86_64.rpm devtoolset-7-systemtap-runtime-3.1-4s.el7.x86_64.rpm devtoolset-7-toolchain-7.1-4.el7.x86_64.rpm devtoolset-7-valgrind-3.13.0-11.el7.x86_64.rpm
1.2. 使用rpm 安装dos2unix
$ sudo rpm -ivh dos2unix-6.0.3-7.el7.x86_64.rpm
1.3. 准备PlatON代码
PlatON git仓库代码
$ go get github.com/PlatONnetwork/PlatON-Go
更新代码
$ go get -u github.co