EOS开发实战 - 怎样在不满足硬件条件的ubuntu上搭建EOS开发环境?

00 导言

      EOS是Block.One公司研发的一个区块链底层公链系统,是继比特币、以太坊后的第三代区块链平台,目的是解决现有的区块链应用性能低、安全性差、开发难度高以及过度依赖手续费的问题,实现分布式应用的性能扩展。

      要想学习EOS开发,先得学习怎么搭建EOS开发环境。但学习EOS起点真不低,环境搭建要求的硬件条件较高,过程坑多。自己摸索可能需要2-3天甚至一周的时间才能搭建成功。看到这里,喜欢挑战的你千万别吓着了。

      EOS目前支持的操作系统如下:
支持的操作系统

      硬件要求如下:
硬件要求7G内存,20G硬盘空间

      目前网络上的环境搭建教程都是比较顺利,可能大部分都是土豪,都是在配置比较高的电脑上完成的。但咱们屌丝是没有钱买高配电脑(承认自己是屌丝是一件非常需要勇气的事),可能大部分内存是4G,CPU是2核的电脑。下面我们就来教教大家怎么在内存4G,CPU 2核的虚拟机操作系统(Ubuntu)里搭建EOS的开发环境。

      Ready ...... go!

01:下载Oracle VirtualBox虚拟机

      点击下载:Virtual Box下载

下载Oracle VirtualBox虚拟机

02:安装Oracle VirtualBox虚拟机

      右击刚刚下载的exe安装文件,以管理员运行,默认下一步下一步就可安装好。
安装Oracle VirtualBox虚拟机

03:下载ubuntu操作系统

      在这里我们下载最新的Ubuntu,下载的文件比较大(1.8G左右),下载快慢就决定你的网速啦。

      点击下载:Ubuntu LTS

下载ubuntu操作系统

04:在VirtualBox中安装ubuntu操作系统(重点)

      敲黑板,接下来这部分是重点。

      打开虚拟机
打开虚拟机

      点击新建并切换到专家模式
点击新建并切换到专家模式

      选择ubuntu64位,并设置4G内存
选择ubuntu64位,并设置4G内存

      设置为50G内存,然后点创建
设置为50G内存

      右击设置,然后点击 系统,设置cpu为2核
设置cpu为2核

      点击启动
点击启动

      选择下好的iso启动盘
选择下好的iso启动盘

      选择中文简体
选择中文简体

      然后一路点继续,遇到下面这步停下来,设置磁盘分区,这一步是最关键了,点击其他选项。

点击其他选项

      新建分区表
新建分区表

      点空闲,再点+号创建新的分区
点空闲,再点+号创建新的分区

      创建8G的swap分区
18.png

      继续创建200M的分区,挂载到/boot
继续创建200M的分区,挂载到/boot

      继续创建15G的分区,挂载到根目录/
继续创建15G的分区,挂载到根目录/

      剩余的空间全部分给/home
剩余的空间全部分给/home

      全部分区情况
全部分区情况

      安装成功后点击重启
安装成功后点击重启

05:安装git

      进入ubuntu系统,右击桌面,打开终端,执行下面命令安装git

$ sudo apt-get install git

06:下载EOS源代码

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

      如果克隆代码时忘了带--recursive参数,可以切换到项目路径下面执行如下命令来更新子模块。

$ git submodule update --init --recursive

07:下载mongodb

      在执行09:编译和构建的过程中会下载安装很多的依赖包和组件,其中在下载mongodb时可能会卡住,在这里,我们可以用迅雷或者其他下载软件提前下好。然后在自己的$HOME目录下,创建opt目录,并把下载好的mongodb移动到该目录下。

$ cd ~
$ mkdir opt
$ mv 下载\mongodb-linux-x86_64-3.6.3.tgz opt

      官网下载: mongodb-linux-x86_64-3.6.3.tgz
      百度网盘下载: mongodb-linux-x86_64-3.6.3.tgz 密码:wex9

08:修改build脚本 (重点)

      打开build脚本文件

$ cd ~/eos/scripts
$ gedit eosio_build_ubuntu.sh

      在第10行左右找到JOBS=...注释掉,并进行替换。

      在第28行左右找到if...,这一行的脚本是用来判断计算机的内存是否小于7000 ( 即7G )时,如果小于则打印提示信息并终止执行。把这一行注释掉,并进行替换。

      在第210行左右找到STATUS=...,这一行是下载mongodb的,这个地方可能会卡住,所以我们在07提前下载好并放入opt目录。把210~215这几行注释掉。

      修改好,记得保存!

09:编译和构建

      到此为止,我们一切准备就绪,可以开始编译构建了。执行如下命令开始编译构建。

$ cd ~/eos
$ ./eosio_build.sh

      注意:编译构建的过程中会下载和构建其他的依赖包和组件,如boost。所以一定要保持网络畅通。编译过程会持续几个小时甚至1天时间,请耐心等待!去找点其他事做,比如和小姐姐约个会什么的。

      如果编译构建成功,会显示如下图。

10:安装

      编译构建成功后,可以开始安装了。执行如下命令进行安装。

$ cd ~/eos
$ sudo make install

11:启动运行节点

      先执行一次nodeos启动节点,不要管对错,按以下步骤操作,

$ nodeos

      打开config.ini找到如下选项并进行对照修改:

$ gedit ~/.local/share/eosio/nodeos/config/config.ini
enable-stale-production = true
producer-name = eosio
plugin = eosio::producer_plugin
plugin = eosio::wallet_api_plugin
plugin = eosio::chain_api_plugin
plugin = eosio::http_plugin
plugin = eosio::history_api_plugin

      因为刚刚已经执行过一次nodeos命令了,它会在~/.local/share/eosio/nodeos/data/ 这个目录下生成相应的文件,如果现在重新执行nodeos命令,可能会报出如下错误:

Failed to start a pending block, will try again later ...

      这时需要先删除这个目录下的所有文件,当然只删除这一次就可以了,以后不用重复这个动作。

$ rm -rf ~/.local/share/eosio/nodeos/data/*

      删除后再次运行nodeos命令

$ nodeos

      现在我们可以看到节点在不断产生区块了

      再另外打开一个终端,执行如下命令可以查看当前区块链信息。

$ cleos get info

12:总结

      到这里,我们已经成功的部署好本地的EOS开发环境了。要搭建成功,记得下面两个关键点。

  1. 内存不够,swap来凑。因为eos的编译和构建过程很耗内存,在编译过程中我查看过它的内存消耗,在某个时刻4G内存确实达到了100%的使用,然后开始使用swap,个人认为内存和swap加起来最好大于10G。
  2. 记得修改构建脚本的检测条件。虽然我们的内存和swap加起来已经超过8G甚至更多,但脚本只检测内存的值是否大于7G,因此我们要把这个条件改小一些。

13:参考资料

  1. EOS Dawn 4.0.0 开发环境搭建
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容