EOS应用开发入门(一)构建开发环境

首先声明,本人在开始写这个系列文章时,除了自己囤了一些EOS代币外,几乎对EOS应用开发及区块链开发时小白的状态,本系列文章将记录我从一个小白到入门的学习过程和反思,故难免有错误之处,敬请谅解。

踩过的坑:

1号坑:由于国内网络问题,我在国内服务器没有配置成功,从github获取代码的速度只有十几K/s,花了大概2天时间,失败多次后,无奈最后选择在香港的服务器上进行的配置,结果只用了3分钟就下载完了。所以,我建议你不要考虑在国内尝试了,当然,如果你确信自己有好办法,我也不能拦着。

2号坑:我的服务器配置因为比较低,是双核4G配置,安装了几次始终都是中途卡死,最后我把服务器的配置提升了一倍,带宽升至5M独享,4核8G,用了大概1个多小时,终于安装成功。

3号坑:网上有不少教程,但由于写教程的时候,EOSIO也在同步开发和更新中,还没有特别稳定的版本,所以教程的失效速度是很快的,我参考的教程几乎多少都有部分过时,最好的办法还是参考一下官方github上的文档,毕竟那才是最新最权威的教程。(本文写于2018年3月25日,这个时候还是可以按照本教程完成安装的)

首先要阅读以下内容:

1,EOS白皮书(也可以直接看中文版),对EOS有一个大致的了解,不需要完全读懂(至少在目前阶段)

2,EOSIO开发文档

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测试环境 (钟晓宏)

欢迎热爱区块链应用开发的朋友加我微信,大家一起搞点事情:


EOS应用开发入门(一)构建开发环境_第1张图片
微信号:361757

你可能感兴趣的:(EOS应用开发入门(一)构建开发环境)