尝试编译EOS

in eos •  6 years ago 

之前一直没怎么去了解过EOS,除了偶尔看看各种新闻稿,总觉的EOS上线是遥不可及的事情,结果一转眼,EOS结束了众筹,主网上线都好多天了,于是想着该去了解一下啦。

系统要求和准备

单单看别人说这玩意如何如何感觉太凌乱,还是自己上手操作一下吧,那么就先从build开始。按照官方文档,写着的系统要求是:

  • 8GB 以上可用内存
  • 20GB以上可用空间

于是我就选个如下配置的VPS吧:

设置好VPS后,更新一下系统,然后在添加一个测试用户,就开工喽。

获取源代码

登陆测试用户,执行如下指令:

git clone https://github.com/EOS-Mainnet/eos.git --recursive
cd eos
git checkout mainnet-1.0.5
git submodule update --init --recursive

(一直搞不懂EOS-Mainnet和EOSIO上的EOS有啥区别,懒得细想啦)

执行自动编译脚本

相比于其它软件,EOS提供了一个自动编译脚本,支持以下几个主流的系统:

  • Amazon 2017.09 and higher
  • Centos 7
  • Fedora 25 and higher (Fedora 27 recommended)
  • Mint 18
  • Ubuntu 16.04 LTS (Ubuntu 16.10 recommended)
  • Ubuntu 18.04 LTS
  • MacOS Darwin 10.12 and higher (MacOS 10.13.x recommended)

我们只需运行如下指令即可

./eosio_build.sh

编译过程

自动编译脚本通过运行类似如下语句来判断系统环境:

OS_NAME=$( cat /etc/os-release | grep ^NAME | cut -d'=' -f2 | sed 's/\"//gI' )

然后根据系统环境包含对应环境下的编译脚本,以我的系统Ubuntu 16.04.4 LTS为例,eosio_build.sh会将./scripts/eosio_build_ubuntu.sh包含进来。然后对内存(free)大小、CPU(lscpu)、磁盘空间(df)等进行对应的检查:

对于在下编译EOS,依赖于以下工具包:

DEP_ARRAY=(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 curl zlib1g-dev doxygen graphviz)

脚本会对系统已安装的工具包进行判断(dpkg)

整理出缺少的工具包

提示安装

Do you wish to install these packages?
1) Yes
2) No

习惯性的敲了个Yes,然后却被提示如下信息:

Please type 1 for yes or 2 for no.

好吧,我瓦特了,原来这个是个选择题,不是填空题,输入1,当然要安装这些工具包啦,不然也没法玩,不是嘛。然后提示输入sudo 密码:

Installing dependencies
[sudo] password for xxxx:
xxxx is not in the sudoers file. This incident will be reported.

当初我看到很这个EOSIO github上的wiki页面,我就很好奇,也没说要求用root权限,也看到sudo之类的指令,那么那么gcc啊啥的是怎么装上的去呢?莫非能本地用户安装,执行了一遍./eosio_build.sh脚本,我就知道了,原来在这等着我呢!看来想破脑瓜不如去操作一遍啊。

然而我建的就是个普通用户,没赋给sudo权限,所以这块肯定就卡住了,将这个用户赋予了sudo权限后,重新执行,脚本自动完成了上述工具包的下载和安装。

之后编译和安装boost,这块没啥毛病,只是有一堆很壮观的警告信息(部分截图)

然后编译和安装MongoDB,这块再次需要用到sudo权限。

然后我就不理它了,休息去鸟。忙了一阵,才想起来我还在build EOS呢,回来一看,哇竟然完成了。

测试验证

按上边的提示信息,可以运行下列指令测试我们编译出来的东西是否正常

export PATH=${HOME}/opt/mongodb/bin:$PATH
/home/xxxx/opt/mongodb/bin/mongod -f /home/xxxx/opt/mongodb/mongod.conf &
cd /home/xxxx/eos/build; make test


之前的测试很快


后边的测试耗时有些就有些长了,不过好在编译的东西没啥问题。

好了,编译就学到这里啦,尽管依然一头雾水,不过可是慢慢学啦。

参考链接

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

用docker吧,比较简单
我在alpha的时候,就开始玩了,但是eosiocpp太过坑爹,compile了有5个error,但是还能放去区块链.

用docker总感觉隔了一层不爽~~

😂
我用alias来用docker,但是使用vps我就不知道了.

我也正在試玩EOS,還只在cleos跟keosd摸索中而已xD
但我滿好奇在整個運作中mongoDB是拿來做什麼用的?

哇咔咔,我是菜鸟,刚开始试玩

mongoDB是用来检查build完整没

这个 VPS 是为了学习而特地注册对的吗?太有学习精神了。话说这篇我还真的学到许多,跟设置挖矿软件很相似。

VPS省心啊,网速又快

咋没用contabo?

擦,忘了这茬了😭

我今天买了一个...也打算玩玩

搞起来:)

I believe in this token

  ·  6 years ago 

我在想这篇帖子会不会有MM来赞……

阿姨来赞一个

哈哈写得好有趣

Posted using Partiko Android