EOS · 2018年8月24日 0

EOS环境搭建

简介

EOS,可以理解为Enterprise Operation System,即为商用分布式应用设计的一款区块链操作系统。EOS是引入的一种新的区块链架构,旨在实现分布式应用的性能扩展。注意,它并不是像比特币和以太坊那样的货币,而是基于EOS软件项目之上发布的代币,被称为区块链3.0。百度百科

本文使用的EOS是2018年8月23日在Git中下载master版本;源码版本差异过大的可能本文不适用。

EOS-GitHub
EOS-官方英文文档

EOS使用C++开发,CMake编译,依赖于Clang、CMake、Boost、OpenSSL、LLVM、secp256k1-zkp、MongoDB等等,以上部分包在yum中没有对应的版本的需要下载源码编译(yum中包含的大部分会在脚本中自动下载安装)。EOS的环境的编译安装对于硬件有一定的要求,官方说明中需要至少20G硬盘空间,8G内存;

本文所使用的环境Centos7、1核CPU、8G内存、10+G硬盘空间。

EOSIO附带了许多程序。使用的主要部分是:

  • nodeos(node + eos = nodeos) - 可以配置插件来运行节点的核心EOSIO节点守护程序。示例用途是块生产,专用API端点和本地开发。
  • cleos (cli + eos = cleos) - 命令行界面,用于与区块链交互并管理钱包
  • keosd (key + eos = keosd) - 将EOSIO密钥安全存储在钱包中的组件。

这些组件之间的基本关系如下图所示。在接下来的部分中,将构建EOSIO组件,并将它们部署在单个主机,单节点测试网络中。

准备工作

首先执行以下命令,确保都安装成功:

$ yum install git

$ yum install gcc
$ yum install gcc-c++

$ yum install centos-release-scl
$ yum install devtoolset-7
$ scl enable devtoolset-7 bash

$ yum install python33.x86_64

build EOS

完成后使用Git下载源码,并进入eos目录:

$ git clone https://github.com/eosio/eos --recursive
$ cd eos

在eos目录下执行如下命令就可以编译eos了,但是在这一步需要确保机器拥有至少20G硬盘空间,8G内存,并可以翻墙。如果达不到要求请看下一节。

$ ./eosio_build.sh

正常成功的情况下会显示,从图中可以看到执行了5个多小时,而且期间还是中断好几次的;总之这个过程机器不好的话非常耗时。
http://172.93.42.22:1080/wp-content/uploads/2018/08/QQ截图20180824094943.png

但失败的情况会更大一点。

build EOS失败解决办法

Your system must have 7 or more Gigabytes of physical memory installed.

http://172.93.42.22:1080/wp-content/uploads/2018/08/QQ截图20180821174250.png

Your system must have 7 or more Gigabytes of physical memory installed.
意思很明确内存不达标,不增加硬件的解决办法就是:
修改对应的脚本验证

$ cd /data/eos/scripts

在这个目录下有一个eosio_build_centos.sh文件是对应我centos的编译脚本,其他环境的也在这个目录。将其打开后,第25行左右:

    if [ "${MEM_MEG}" -lt 7000 ]; then
        printf "\\n\\tYour system must have 7 or more Gigabytes of physical memory installed.\\n"
        printf "\\tExiting now.\\n\\n"
        exit 1;
    fi

两个选择,一种吧把7000改700或者别的,反正比机器内存小就行;另一种直接注释。


如果硬盘不足,提示:
You must have at least 20GB of available storage to install EOSIO.

那么同理将eosio_build_centos.sh文件37行左右修改或注释。

    if [ "${DISK_AVAIL%.*}" -lt "${DISK_MIN}" ]; then
        printf "\\n\\tYou must have at least %sGB of available storage to install EOSIO.\\n" "${DISK_MIN}"
        printf "\\tExiting now.\\n\\n"
        exit 1;
    fi

虽然说经过以上步骤可以继续执行安装,但是更多的还是会失败;在编译某些C++库时需要消耗大量的内存,就算设置了交换分区也不一定可以通过;本人第一次编译安装使用了腾讯云的1G1核50G硬盘服务器,设置了2G交换分区依然没有通过,而且在整个过程中对CPU的性能的要求也是不低,换了台8G虚拟机后,整个编译过程依然5个小时以上;相对的硬盘差一点没有太大影响。

Compiling CMAKE has exited with the above error.

http://172.93.42.22:1080/wp-content/uploads/2018/08/QQ截图20180821182748.png

make: the 'j' option requires a positive integer argument
...
Compiling CMAKE has exited with the above error.
如果出现了以上错误,继续打开eosio_build_centos.sh文件,找到第8行左右,将JOBS变量修改为固定值,机器是几核CPU就写几,两核CPU就是JOBS=2。

    #JOBS=$(( MEM_GIG > CPU_CORE ? CPU_CORE : MEM_GIG ))
    JOBS=2

修改后再次运行./eosio_build.sh命令即可。

c++: internal compiler error: Killed (program cc1plus)

http://172.93.42.22:1080/wp-content/uploads/2018/08/QQ截图20180822112853.png

c++: internal compiler error: Killed (program cc1plus)
出现了这句提示一般代表了编译时内存耗尽无法继续执行,程序中断,如果不增加内存的情况下可以使用交换分区尝试再次编译:

#创建分区文件, 大小 2G
$ dd if=/dev/zero of=/swapfile bs=64M count=32
#生成 swap 文件系统
$ mkswap /swapfile
#激活 swap 文件
$ swapon /swapfile

但是不见的一定会成功,本人第一次使用1G的机器时,使用交换分区后只是拖延了一些时间,在后续的编译中依然内存不足,最终放弃了在此台机器上安装EOS。

Unable to download Boost libraries at this time.

Unable to download Boost libraries at this time.

出现部分包下载超时的问题时,可以选择手动下载,下载连接在eosio_build_centos.sh脚本中都有;下载好并上传到指定的目录后,需要吧对应的脚本也做一些修改,否则还会自行下载。

eosio_build_centos.sh脚本中编译的每个步骤都很清晰,也可以选择自己逐步编译对应的依赖包。

执行test脚本

http://172.93.42.22:1080/wp-content/uploads/2018/08/QQ截图20180824094943.png

在built成功的提示让我们执行这些命令进行一个测试;照着执行就是了。

    /root/opt/mongodb/bin/mongod -f /root/opt/mongodb/mongod.conf &
    source /opt/rh/python33/enable
    export PATH=${HOME}/opt/mongodb/bin:$PATH
    cd /data/eos/build; make test

如果全部passed的那就可以继续下一步了。
本人这里出现了三个未通过,但是暂未发现有何种影响。

install EOS

编译完成后就很简单了,在EOS目录下执行

$ ./eosio_install.sh

出现如下内容则安装成功
http://172.93.42.22:1080/wp-content/uploads/2018/08/QQ截图20180824095840-1.png

下一篇-EOS单节点启动与配置说明

.
.
.
.
.
.
.
【本文章出自NM1024.com,转载请注明作者出处。】






>>转载请注明原文链接地址:EOS环境搭建