实践 :eosio编译安装

最开始时候在centOS7上安装,很不顺畅,遇到很多困难,可能是自己对linux不够了解,最后还是放弃了,选择了ubuntu16.04LTS 容易好多,但是还是自己编译安装了boost和gcc,
之后换了Ubuntu18.04,阻力就更小了,不知是eosio新版本的功劳,还是ubuntu18软件源可以apt-get更新的gcc版本,总之是要顺利好多
来分享一下我的安装步骤

我采用源码编译安装,有修改eosio源代码需求的亲可以选择这种安装方式,现在eosio已经发布了v1.5.0的binary版本下载下来安装到系统中也可以,只是研究一下合约开发的亲为了追求效率可以选择第二种安装方式

好,开始吧,我的目标环境是Ubuntu 18.04.1 LTS(在Ubuntu16.04LTS上面也成功安装过),eosio版本1.5.0,计算机内存不是问题,我用2G内存的机器也成功安装过,但是还是8G左右比较好,要不真是很慢很卡,如果你没有达到eosio要求的配置可以改动下脚本就可以顺利通过编译了(比如我是找到eosio_build_ubuntu.sh,找到限制内存大小的条件,注释一句exit就可以了,大家自己找到,通过log输出来搜索源码就可以定位)

1.下载源代码

git clone …不解释,记得要把submodules也都下载下来

2. 进入eos根目录,执行./eosio_build.sh脚本

如果需要gdb调试程序的话,执行 ./eosio_build.sh -o Debug
记得要用root权限哦,脚本首先检测eosio依赖的东东有没有安装,没有的话会帮你下载安装,好方便的说,
我也遇到了些小问题,
比如这种

E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) 
E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?

解决办法在这里
然后就静静地观赏它自动下载编译安装gcc7.3 boost mongodb LLVM clang一类东西,有的时候可能是由于网络条件不太好,会下载失败(记得mongodb很容易下载失败)导致脚本出错退出,没关系,只要重复执行./eosio_build.sh就可以了,多试几次
依赖的东西安装齐全了就可以编译eosio本尊了
看到下面的图画就代表你成功了
eosio built successfully

3. 执行./eosio_install.sh

主要就是把eosio相关的可执行,库什么的放到/usr/local/eosio/bin 和/usr/local/eosio/lib下面,在ENV path中可以找到这些东东,命令行工具会用起来比较方便吧

4. 大功告成

官方的推荐步骤还有一个测试安装的过程,不太记得清楚了,大体好像是执行一系列python脚本来检测eosio到底装得棒不棒,耗时相当的长,我记得有约40个检测项目,至少要1个多小时,而且很可能有某几个测试项目无法通过,比如我以前mongodb有关的测试项目就没通过,但是还是可以正常用的好好的,所以我的建议就是不要运行那个测试脚本了,我也只是第一次安装时候运行了,以后再也没有执行过,而且我也一直没有用到eosio的芒果DB

5.其它注意事项

编译脚本会检查系统能并行处理的作业(job)数量,我安装过的有两台机器上获取到的数目是0(可能与CPU核心数量少有关),这样的话执行“ make -j0 ”会出错,把脚本中所有的make -j${jobs} 改成 make 就可以解决。

内存1G的编译机会出现“g++: internal compiler error: Killed (program cc1plus)”错误,采用这个方法给系统配置swap分区的话就可以编得过了(不推荐在低配的机器上安装,我在1G内存的CentOS7阿里云服务器上光编译就用去了48小时)

还有就是mongo_db_plugin好像没有什么用(至少我是一直没有用到),可以不用编译,把下图示的 -DBUILD_MONGO_DB_PLUGIN置为false就可以,这段脚本位于eosio_build.sh
不编译mongodb_plugin
如果用不着mongo db的话,eosio依赖的mongo db 和驱动都不需要安装了,可以节约一些时间

我们的DApp 在EOSIO中的工作方式:
Reading State from the Blockchain
它就是一个非常不便于维护的分布式数据库,还浪费存储空间,可以应用的情境非常有限…
不过它是很好的c++源码库,是学习boost, openssl, c++11, websocket++的好资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
EOSIO的设计包括: 免费汇率限制交易 低延迟阻止确认(0.5秒) 低开销的拜占庭容错终结 可选的高开销,低延迟BFT终端 由Web Assembly支持的智能合约平台 专为稀疏头灯客户端验证而设计 计划的周期性事务 时间延迟安全 基于角色的权限分级 支持生物识别硬件安全密钥(例如Apple安全飞地) 并行执行上下文自由验证逻辑 区块链间通信 EOSIO允许开发人员编写与需求确定性执行的共识算法兼容的业务逻辑。您的用户群可以使用安全的公钥基础结构与此业务逻辑进行交互,为您的业务带来区块链级别的安全性,责任性和可审计性。业务逻辑根据组织的治理结构轻松更新。 EOSIO旨在在没有任何令牌的环境中运行,系统管理员为用户分配可能无限制的资源配额。或者,智能合约可以通过其他方式分配资源配额,例如令牌销售,市场费用或投票。这使得EOSIO非常适合企业和社区驱动的区块链。 根据您的使用情况,可以将EOSIO配置为使用两种不同的Web装配引擎之一Binaryen和WAVM。单个EOSIO区块链可支持高达1,000 TPS,未来版本的EOSIO将提供简化区块链间通信所需的工具,使您的业务能够水平扩展。 EOSIO是在开放源代码MIT许可下发布的,按“原样”提供,没有任何明示或暗示的担保。EOSIO软件提供的任何安全性部分取决于它的使用,配置和部署方式。EOSIO建立在许多第三方库上,如Binaryen(Apache许可证)和WAVM(BSD 3-clause),它们也是“按现状”提供的,没有任何形式的保证。在不限制前述内容的一般性的情况下,Block.one不作任何陈述或保证EOSIO或任何第三方库将按预期执行或不会出现错误,错误或错误代码。这两种方式都可能以很大或很小的方式失败,这可能会完全或部分地限制功能或危害计算机系统。如果您使用或实施EOSIO,则自行承担风险。在任何情况下都不会阻止。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值