EOS应用开发入门(一)构建开发环境
首先声明,本人在开始写这个系列文章时,除了自己囤了一些EOS代币外,几乎对EOS应用开发及区块链开发时小白的状态,本系列文章将记录我从一个小白到入门的学习过程和反思,故难免有错误之处,敬请谅解。
踩过的坑:
1号坑:由于国内网络问题,我在国内服务器没有配置成功,从github获取代码的速度只有十几K/s,花了大概2天时间,失败多次后,无奈最后选择在香港的服务器上进行的配置,结果只用了3分钟就下载完了。所以,我建议你不要考虑在国内尝试了,当然,如果你确信自己有好办法,我也不能拦着。
2号坑:我的服务器配置因为比较低,是双核4G配置,安装了几次始终都是中途卡死,最后我把服务器的配置提升了一倍,带宽升至5M独享,4核8G,用了大概1个多小时,终于安装成功。
3号坑:网上有不少教程,但由于写教程的时候,EOSIO也在同步开发和更新中,还没有特别稳定的版本,所以教程的失效速度是很快的,我参考的教程几乎多少都有部分过时,最好的办法还是参考一下官方github上的文档,毕竟那才是最新最权威的教程。(本文写于2018年3月25日,这个时候还是可以按照本教程完成安装的)
首先要阅读以下内容:
1,EOS白皮书(也可以直接看中文版),对EOS有一个大致的了解,不需要完全读懂(至少在目前阶段)
001 支持自动安装的操作系统
EOSIO支持的自动安装开发环境如下:
Amazon 2017.09 and higher.
Centos 7.
Fedora 25 and higher (Fedora 27 recommended).
Mint 18.
Ubuntu 16.04 (Ubuntu 16.10 recommended).
MacOS Darwin 10.12 and higher (MacOS 10.13.x recommended).
目前我的开发环境为MacOS 10.13.3,本文也暂时以这个操作系统为例。
注:这虽然不代表windows下不能安装,但官方的文档并未给出windows版本的安装方法。
002 拉取代码
根据官方的说法,建议直接在公共测试网络运行。这个过程需要下载几百兆的文件,时间视网速确定。
git clone https://github.com/eosio/eos --recursive
003 开始编译
拉取代码完成后,执行以下代码
cd eos
./eosio_build.sh
编译过程有点漫长,所以请耐心等待。我大概用了2个小时完成。
004 修改配置
当前一步完成后,恭喜你已经完成绝大部分了!接下来,主要看运气了。
首先,尝试运行一下eosd
cd /home/username/eos/build/programs/eosd // 注意这里的username换成你的用户名
./eosd
正常情况下这里会报错,如果你找不到eosd这个文件,请尝试重新获取代码重新安装吧。
报错后,会在当前的eosd目录下生成一个文件夹,叫做data-dir,我们先进去
cd data-dir
dir // 看一下这里边是不是有一个文件叫做config.ini
接下来,请先复制下面的代码:
# Load the testnet genesis state, which creates some initial block producers with the default key
genesis-json = /path/to/eos/source/genesis.json
# Enable production on a stale chain, since a single-node test chain is pretty much always stale
enable-stale-production = true
# Enable block production with the testnet producers
producer-name = inita
producer-name = initb
producer-name = initc
producer-name = initd
producer-name = inite
producer-name = initf
producer-name = initg
producer-name = inith
producer-name = initi
producer-name = initj
producer-name = initk
producer-name = initl
producer-name = initm
producer-name = initn
producer-name = inito
producer-name = initp
producer-name = initq
producer-name = initr
producer-name = inits
producer-name = initt
producer-name = initu
# Load the block producer plugin, so you can produce blocks
plugin = eosio::producer_plugin
# Wallet plugin
plugin = eosio::wallet_api_plugin
# As well as API and HTTP plugins
plugin = eosio::chain_api_plugin
plugin = eosio::http_plugin
然后,修改一个配置文件config.ini
vim config.ini
打开后,将上面的一堆追加到config.ini末尾,然后注意要修改两个地方:
1,请将这段代码中的创世区块路径
genesis-json = /path/to/eos/source/genesis.json
修改为你自己的创世区块路径,一般就在你的eos文件夹根目录下,例如我的修改为:
/home/zilly/eos/genesis.json
2,在config.ini中出现了两处enable-stale-production = ,这里的参数一个是false,一个是true,请用#注释掉false的那一行。
005 同步节点
至此,所有准备工作就绪,接下来我们尝试同步节点
cd ~/eos/build/scripts
sudo ./start_npnode.sh
tail -F testnet_np/stderr.txt
整个同步工作可能需要十几分钟,同步中的状态如下:
同步中 同步完成到这里,基本上我们的配置工作就算完成了。
说实话,做到这里,我还是没太明白。。。
参考资料:
1,EOS开发(1) -- 安装及常用工具介绍 (freelands)
2,搭建EOS测试环境 (钟晓宏)
欢迎热爱区块链应用开发的朋友加我微信,大家一起搞点事情:
微信号:361757