EOS源码编译安装踩坑血泪史

这篇具有很好参考价值的文章主要介绍了EOS源码编译安装踩坑血泪史。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

EOS使得区块链进入了3.0时代,处理交易的速度更快,DPos共识机制让资源消耗更小。要学习EOS,先从其源码的编译安装开始。

源码安装的过程参考EOS官网教程:Shell Scripts | EOSIO Developer Docs

安装环境:Ubuntu18.04

官网的教程看起来操作非常简单,但是我在安装的过程中遇到了很多问题,卡了好几天才彻底解决。下面按照我的操作过程,依次描述遇到的主要问题以及找到其对应解决方法的血泪史。

一、下载源码中的问题

将源码下载到eosio/eos文件夹中后,因为此时源码的内容不全,需要更新子模块。我跟随官网的指示运行了如下命令。

cd ~/eosio/eos
git submodule update --init --recursive

这是我踩到的第一个坑。该命令会从github下载数据,但是由于网络原因,github服务器的连接非常不稳定,经常会遇到连接失败报错。

我重试了很多次,并且尝试将指令中的网址拷贝到浏览器下访问。除此之外,我还试过在EOS代码中搜索含github网址的文件,将其全部替换为国内的镜像网址,但是仍有不少内容还没有镜像,只能将其改回重试。每一次重试都在下载一两个子模块后就连接失败。在经过无数次的重试后完成了子模块更新。

二、编译安装源码的问题

我按照官网的指示使用源码中的安装脚本进行安装,运行如下命令。

cd ~/eosio/eos
./scripts/eosio_build.sh

首先我遇到了权限不足的报错,使用sudo解决。

再次运行时,遇到了llvm版本相关的报错。提示需要7-11版本的llvm,而我先前安装的是13.0版本。除此之外还有clang与gcc版本不匹配的警告信息,提示可以带-P参数执行eosio_build.sh脚本。-P参数表示运行脚本自动安装指定版本的依赖包。要注意的是依赖包会从github下载,依然有连接不稳定的问题,多次尝试即可。

第三次运行时我带入了-P参数,但不知为何安装llvm后提示没有找到文件。我怀疑是电脑中先前安装的13.0版本的llvm没有清理干净,造成了影响。于是我配置了一台新的虚拟机,从头开始再次尝试。

在新虚拟机中终于完成了依赖包的安装,但是又遇到了如下报错。

EOS源码编译安装踩坑血泪史

在网上搜索了各种资料都没有解决,最后我在eos官网中搜索gpg,找到了如下线索。

EOS源码编译安装踩坑血泪史

执行上图红框中的命令后,依然存在问题。这时我注意到红框前的apt update命令,想着试一试执行了一下。系统提示有95个项目可以upgrade,于是我又执行了sudo apt upgrade。全部更新完成后再次执行编译脚本,终于解决了该问题,进入EOS的编译。

刚开始的编译过程非常顺利,一直进行到74%,虚拟机开始变得极其卡顿,到了完全无法操作的程度。我发现编译到70%后,虚拟机的内存占用极高(电脑只有8G内存,给虚拟机分配了7G,刚好满足EOS编译的最低要求),于是将编译停止后再次启动。但是EOS不能从上次中断的位置继续,每次都会检查依赖完整性后从零开始配置和编译。这次运行编译脚本后我将电脑放置了一个通宵,第二天早上发现在77%时编译进程被kill。接下来的多次尝试都会在这里卡死。

我又考虑了是否是系统版本原因,将原来的Ubuntu16.04换成了18.04,依然出现killed。我观测到每次运行的过程中电脑的内存都被用满,硬盘的使用也一直保持100%。这样的情况使我不得不考虑硬件的原因。我决定扩大电脑只有8G的物理内存,换了两条内存升级到了32G。

升级内存后我迫不及待地直接在修电脑的店里就开始执行编译。这次直接给虚拟机分配了20G的内存。编译的过程中我持续观测内存的占用情况,最高达到了18G。看来官网给出的7G内存要求远远不够。

在经历了数天的艰难困苦后终于编译成功,显示信息如下(编译完成太开心了忘了截图)

EOS源码编译安装踩坑血泪史

然后按照官网的教程执行安装脚本,成功后显示如下。

EOS源码编译安装踩坑血泪史

三、 测试编译结果

按照官网的教程执行测试命令,过程如下。

EOS源码编译安装踩坑血泪史

至此EOS的源码编译安装终于完成。文章来源地址https://www.toymoban.com/news/detail-480445.html

到了这里,关于EOS源码编译安装踩坑血泪史的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 踩坑 Sophus 模板库安装及编译(视觉SLAM 十四讲第二版 ch4 )

    在《视觉slam十四讲》第二版中,第4、7、8、9、10讲都需要Sophus库,因此我们需要安装Sophus库,并且需要的是Sophus模板库,因此很多人因为安装了非模板版本导致报错,下面提供Sophus模板版本安装方式,以及对应不报错版本。 只要是 3.3以上的版本即可 官网进入,然后下载T

    2024年01月22日
    浏览(61)
  • LINUX下安装Neo4j 5.5.0版本保姆级教程(安装血泪)

    1.安装vim,命令:yum -y install vim* 2.安装jdk17,解压tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /usr/local 3.更改jdk文件夹名称:打开文件夹cd /usr/local 更改名称mv jdk-17.0.6 jdk 4.在jdk目录下创建jre文件:mkdir jre 5.完成JDK安装后,配置环境变量 第一步:vim /etc/profile; 第二步:在文件尾部添加如下

    2024年02月04日
    浏览(49)
  • [全网唯一]通过修改源码使得从ZIP提取文件并在提取时进行重命名保存(博客园同步发布)

    源码位置: /Lib/zipfile.py/ZipFile/_extract_member/zipfile.py或者直接点击extract函数. 在使用python解压缩zip文件时, 由于需要在解压时重命名文件为我想要的格式, 而不巧的是, zipfile包官方源代码没有这个功能... 于是, 在百度之后, 果断放弃寻找现成代码的想法. 在研究了一下extract函数的原

    2024年02月08日
    浏览(36)
  • 【安装】grpc源码编译安装(Linux)

    修改构建套件的CMake Tool为新建的CMake 选择grpc源码目录中的CMakeLists.txt(grpc/CMakeLists.txt) 初始打开,会弹出窗,设置cmake编译的构建目录;(构建产生的构建文件都会生成在该目录下) 初始打开,设置构建目录后,会弹出窗设置CMake参数; 点击CMake,执行CMake;(最终会生成

    2024年04月27日
    浏览(44)
  • 源码编译安装POSTGRESQL15

    安装 ./Anaconda3-2021.11-Linux-x86_64.sh 初始化数据库 修改配置文件 启动数据库 重新加载配置文件

    2024年02月13日
    浏览(65)
  • 源码编译安装 LAMP

    本章内容 掌握以源码编译的方法构建 LAMP 环境 学会 phpMyAdmin 的使用 没安装apache服务的,看我之前的文章安装apache基本服务服务 2.4 MySQL 的编译安装 MySQL 是一个真正的多线程、多用户的 SQL 数据库服务,凭借其高性能、高 可靠和易于使用的特性,成为服务器领域中最受欢迎的

    2024年01月19日
    浏览(43)
  • 源码编译安装Apache

    目录 ✨apache安装步骤 🍭挂载镜像 🍭解压并安装 🍭安装主程序 🍭优化链接及服务 🍭查看httpd模块 🍭查看mpm配置文件 🍭查看apache主页 🍭使用ab命令进行压力测试    🦐博客主页:大虾好吃吗的博客    🦐专栏地址:Linux从入门到精通   检查是否已经rpm安装httpd服务,已

    2024年02月08日
    浏览(56)
  • fastdds源码编译安装

    如何根据源码编译 fastdds 这里是为了根据源码编译一个 fastdds 。 fastdds 依赖 fastcdr Asio TinyXMl2 git clone git@github.com:eProsima/Fast-DDS.git 进入 下载好的 fastdds 中执行 git submodule update --init --recursive 下载3方库。其中需要编译 fastcdr, asio , tinyxml2 foonathan_memory_vendor. 注意其中的 asio 依赖

    2024年02月07日
    浏览(60)
  • Spring6源码编译、安装

    名称 版本 jdk 17 gradle 8.1.1 spring源码版本 6.0.9 下载并解压 配置环境变量 验证 下载并解压 配置环境变量 验证 配置镜像仓库 spring在Github官网上有详细的说明文档,可以参考,但按照步骤做辉有些报错😅,还是按照自己总结的步骤来吧。 github源码地址 国内gitcode镜像 官方构建

    2024年02月08日
    浏览(45)
  • Centos源码编译安装Redis

    Redis是常用的内容使用工具,每次安装服务器都需要安装Redis 为了减少重复工作,写了一个脚本自动安装Redis,如下 把配置文件拷贝到etc下面 然后运行下面命令启动 执行`ps aux|grep redis就可以检测是否启动成功啦`,如果看到进程,说明启动成功

    2024年01月20日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包