十步极速部署 EOSForce 主网节点!



  • 0417.jpg
    本文由社区开发者投稿
    作者: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-get update && apt-get install -y git wget
    
    git clone https://github.com/eosforce/eosforce.git eosforce
    

    Step 2. 调整安装 EOSForce 的最低内存要求

    // 执行命令

    cd eosforce
    vi scripts/eosio_build_ubuntu.sh
    

    把第27行的【if [ "${MEM_MEG}" -lt 2000 ]; then】中的7000改为自己内存的大小。比如如果内存是2G,就改成2000.
    04171.jpg

    注意:如果内存配置太低,编译 EOSIO 时会弹出此提示。
    04172.jpg

    Step 3. 把编译安装 EOSIO 时需要的依赖库一步安装到位

    // 执行命令
    sudo apt-get install clang-4.0 lldb-4.0 libclang-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
    

    执行这一步时,会提示:

    Do you want to continue?  Y/n
    

    敲入 Y,回车。

    Step 4. 更新远程代码到本地仓库

    // 执行命令

    git fetch && git checkout force-v1.5.1
    git submodule update --init --recursive
    

    Step 5. 安装编译 EOSFORCE

    // 执行命令

    ./eosio_build.sh
    

    这一步需要等待1-3小时。
    编译安装完成后,会看到以下画面。
    04173.jpg

    到这一步,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核心配置文件

    // 执行命令

    wget https://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**
    
    修改完保存退出。
    

    修改完保存后退出。

    04174.jpg

    Step 9. 配置环境变量

    在根目录下执行

    vi /etc/profile
    

    在文件最下方,输入

    export PATH=$PATH:/root/eosforce/build/programs/nodeos
    

    保存退出,然后执行

    source /etc/profile
    

    04175.jpg

    Step 10. 启动节点

    // 执行命令

    nodeos --genesis-json=/root/.local/share/eosio/nodeos/config/genesis.json
    

    genesis-json的值是你的genesis.json文件的全路径

    至此,节点启动成功。
    04176.jpg

    此时可以再开一个终端窗口,或者通过执行 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 即可。


Log in to reply