十步极速部署 EOSForce 主网节点!
本文由社区开发者投稿
作者:tianziaxe
Step 0. 准备一个干净的Linux系统环境
官方推荐的配置是2核cpu 8G内存 100G 硬盘 和 64位ubuntu 16.04 系统。我有意尝试了最低配置(1核 CPU, 2G内存,50G SSD硬盘,系统是64位的 Ubuntu 16.04)来搭建同步节点,也成功了。但是这个配置只能拿来练手,不建议用于实际应用部署。
另外要注意的是,可以使用云服务器或个人电脑搭建同步节点,但一定不要用虚拟机。
Step 1. 获取 EOSForce 源码
// 执行命令
apt-getupdate&& apt-getinstall-y git wget
gitclonehttps://github.com/eosforce/eosforce.git eosforce
Step 2. 调整安装 EOSForce 的最低内存要求
// 执行命令
cdeosforce
vi scripts/eosio_build_ubuntu.sh
把第27行的【if [ “${MEM_MEG}” -lt 2000 ]; then】中的7000改为自己内存的大小。比如如果内存是2G,就改成2000.
注意:如果内存配置太低,编译 EOSIO 时会弹出此提示。
Step 3. 把编译安装 EOSIO 时需要的依赖库一步安装到位
// 执行命令
sudo apt-getinstall clang-4.0lldb-4.0libclang-4.0-dev cmake make automake libbz2-dev libssl-dev libgmp3-dev autotools-dev build-essential libicu-dev python2.7-dev python3-dev autoconf libtool zlib1g-dev doxygen graphviz
执行这一步时,会提示:
Doyou wanttocontinue? Y/n
敲入 Y,回车。
Step 4. 更新远程代码到本地仓库
// 执行命令
gitfetch&&gitcheckoutforce-v1.5.1
gitsubmoduleupdate--init--recursive
Step 5. 安装编译 EOSFORCE
// 执行命令
./eosio_build.sh
这一步需要等待1-3小时。
编译安装完成后,会看到以下画面。
到这一步,EOSForce 主网节点部署已经成功一半了。
Step 6. 依次执行以下命令
// 执行命令
mkdir -p ~/.local/share/eosio/nodeos/config
curl https://raw.githubusercontent.com/eosforce/genesis/master/genesis.json -o ~/.local/share/eosio/nodeos/config/genesis.json
cp build/contracts/System/System.abi build/contracts/System/System.wasm ~/.local/share/eosio/nodeos/config
cp build/contracts/eosio.lock/eosio.lock.abi build/contracts/eosio.lock/eosio.lock.wasm ~/.local/share/eosio/nodeos/config
cp build/contracts/System01/System01.abi build/contracts/System01/System01.wasm ~/.local/share/eosio/nodeos/config
cp build/contracts/eosio.token/eosio.token.abi build/contracts/eosio.token/eosio.token.wasm ~/.local/share/eosio/nodeos/config
cp build/contracts/eosio.msig/eosio.msig.abi build/contracts/eosio.msig/eosio.msig.wasm ~/.local/share/eosio/nodeos/config
Step 7. 获取Config核心配置文件
// 执行命令
wgethttps://updatewallet.oss-cn-hangzhou.aliyuncs.com/config.ini
wget https://updatewallet.oss-cn-hangzhou.aliyuncs.com/eosforce/activeacc.json
Step 8. 修改Coinfig核心配置文件
放开 p2p-server-address 的注释,并把 ip:port 改成 自己服务器的IP地址:端口号。
端口号自行设定,但防火墙要注意放开放开端口。
// 执行命令
cp config.ini activeacc.json ~/.local/share/eosio/nodeos/config/
vi ~/.local/share/eosio/nodeos/config/config.ini
修改完保存退出。
修改完保存后退出。
Step 9. 配置环境变量
在根目录下执行
vi/etc/profile
在文件最下方,输入
export PATH=$PATH:/root/eosforce/build/programs/nodeos
保存退出,然后执行
source/etc/profile
Step 10. 启动节点
// 执行命令
nodeos --genesis-json=/root/.local/share/eosio/nodeos/config/genesis.json
genesis-json的值是你的genesis.json文件的全路径
至此,节点启动成功。
此时可以再开一个终端窗口,或者通过执行 Ctrl + Z,fg %1 两条命令,把进程挂到后台运行。
然后过 cleos get info 和 curl https://w1.eosforce.cn/v1/chain/get_info两条命令来查看本地区块高度和原力主网的区块高度。当两者接近时,同步完成。
如果在开启nodeos时出现 std::exception:: what: could not insert object, most likely a uniqueness constraint was violated 这个错误。
解决方案是:
把 ~/. local/share/eosio/nodeos/data 这个文件 rm -rf掉。然后重新执行 nodeos 即可。