学习
实践
活动
专区
工具
TVP
写文章

EOS智能合约开发闯关-虚拟机上编译最新源码

EOS to the moon!

进入4月份,eos从6美金一直飙升到20美金,让她的拥趸们喜笑颜开。就在5月11日,eos也发布了dawn4.0版本,距离其6月份启动公链又迈出了一步。作为区块链DApp的开发团队,我们一直在紧密跟踪其推进的脚步,希望能尽早体验那传说中百万tps的感觉!经过一段时间的摸爬滚打,终于有了深入的体会。从今天起,我们会启动一个系列的文章,给大家分享一下我们的收获,如果您觉得有帮助,别忘了打赏。

废话少说,让我们进入正题。要开发eos的智能合约,第一步当然离不开环境的搭建,经过多少次失败的编译尝试,我们终于跑通了eos的节点,大家可以按照下面给出的步骤来搭建自己的环境,祝您好运!

首先要声明一下,鲶鱼哥是在全新安装20G磁盘、4G内存的VirtualBoxUbuntu(16.04 LTS amd64)虚拟机上成功编译EOS最新源码的。

准备工作:

1. 新建用户eos,在/etc/sudoers文件的最后一行添加如下配置,这样每次sudo是就不需要输入密码了

2. 在/etc/hosts增加github的ip地址映射,访问github提速

3. 把Ubuntu的软件源更新成aliyun的软件源镜像

修改配置文件是/etc/apt/sources.list的内容,替换成如下内容:

准备工作完成后,按照eos wiki的指示,从github上clone下代码:

git clone https://github.com/EOSIO/eos--recursive

进入eos目录,运行./eosio_build.sh:

运行结果提示需要内存至少要7G以上,查看eosio_build.sh, 发现该脚本执行了./scripts/eosio_build_ubuntu.sh

打开eosio_build_ubuntu.sh,注释掉退出的语句:

继续运行:

结果提示至少要20G的磁盘存储,继续注释eosio_build_ubuntu.sh中对应的退出脚本。

继续运行编译脚本,这次排除了机器配置不足的障碍,提示需要安装dependencies

选1,开始安装各种dependencies。。。(由于替换成aliyun的ubuntu软件源,飞一般的感觉)

安装完各种dependencies后,脚本开始编译Boost C++ Library, 但是编译到最后提示 pyconfig.h: Nosuch file compilation terminated.

此时需要安装python的dev软件包:

sudo apt-get install python-dev

安装完python-dev包后,有两个方法重新编译Boost:

1) 删除~/opt目录上的boost_1_66_0,然后重新运行~/eos/eosio_build.sh。

2) 进入/tmp/boost_1_66_0目录,执行./b2 install,编译安装boost库之后,再重新运行~/eos/eosio_build.sh。

方法2)会比较快,因为不需要重新编译boost。

继续运行eosio_build.sh编译脚本后,经过数个小时漫长的等待,终于编译成功了!编译脚本显示最终结果:

最后,安装编译成功的eos软件:

cd~/eos/build

sudomake install

现在就可以愉快的对eos进行测试了!

环境搭建完毕后,我们就进入正题。为了便于理解,我们先假设了这样的场景。话说某地发生了地震,我们代表某红会计划在EOS上发布一个捐款合约,捐款人向合约发送一定数量的eos,合约收到后就做产生一个捐赠记录保存在链上。怎么样,功能很简单吧,不过今天鲶鱼哥的心情有点差,毕竟eos跌了,让我平复一下心情,明天把这个合约的开发分享给大家,给eos加点油!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180518G0M27100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券