成为最先一批运行EOS的人
复习一下上次文章的内容,EOS 系统主要有三个应用程序:html
nodeos
: EOS 系统的核心进程,也就是所谓的“节点”。cleos
:本地的命令行工具,经过命令行与真人用户交互,并与节点(nodeos)和钱包(keosd)通讯。是用户或者开发者与节点进程交互的桥梁。keosd
:本地钱包工具。能够管理多个含有私钥的钱包并加密。本篇教程适用于如下系统,可是不论你的电脑是 windows 仍是 mac,都强烈建议安装一个虚拟机,在 Ubuntu 上搞,由于 Mac 上有不少坑。安装 Ubuntu 虚拟机有关教程你们能够在网上搜到。node
配置要求:linux
若是机器内存不够 8G,自动编译脚本会报错。git
运行 EOS 须要一点 linux 和 github 基础,不过不要嫌麻烦,之后开发 EOS 合约须要大量这方面的知识。推荐你先按步骤搞起来,有不明白的能够参考如下文章。别怕,谁也不是生下来就什么都会的。github
linux 命令基础: https://linux.cn/article-6160...mongodb
github 基础: http://www.runoob.com/w3cnote...json
若是你是 Mac,须要先下载 git,能够搜索 “Mac git” 就能找的各类文章教你在 Mac 上安装 git。segmentfault
首先使用 cd
命令进入你想安装的文件夹,我通常就是根目录了,执行如下命令下载 EOS 代码:windows
git clone https://github.com/EOSIO/eos --recursive
注意要加后面这个 --recursive
命令,由于 EOS 有几个子模块,这样就能所有下载下来,若是忘了这个命令,使用下面的命令能够补救:api
git submodule update --init --recursive
有了源代码,咱们就能够构建咱们本地的 EOS 程序了,EOS 官方很是体贴地为咱们准备了自动构建的脚本,使用这个脚本能够大大简化,首先咱们进入刚刚下载的 eos 目录,并执行构建脚本:
cd eos ./eosio_build.sh
根据网速和机器性能的不一样,可能要用 30 分钟 - 1 小时的时间,请耐心等待。构建完成后须要对构建的产物进行验证:
~/opt/mongodb/bin/mongod -f ~/opt/mongodb/mongod.conf &
/usr/local/bin/mongod -f /usr/local/etc/mongod.conf &
而后全部操做系统再执行如下命令:
cd build make test
为了方便开发智能合约,还须要在 build 目录进行 make install:
若是已经进入 build 目录请去掉 cd build。
cd build sudo make install
构建完成后,咱们进入 eos/build/programs/nodeos 目录(使用 cd 和 cd .. 命令),运行 nodeos 节点程序:
./nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --plugin eosio::account_history_api_plugin
命令中, -p 参数表示使用了 eosio 帐户的权限,这是本地测试系统提供的原始帐户。后面的各个 plug in 参数是选择加载的插件。
成功后,若是看到相似下面的输出,就是成功创建了一个本地单节点测试网络:
1575001ms thread-0 chain_controller.cpp:235 _push_block ] initm #1 @2017-09-04T04:26:15 | 0 trx, 0 pending, exectime_ms=0 1575001ms thread-0 producer_plugin.cpp:207 block_production_loo ] initm generated block #1 @ 2017-09-04T04:26:15 with 0 trxs 0 pending 1578001ms thread-0 chain_controller.cpp:235 _push_block ] initc #2 @2017-09-04T04:26:18 | 0 trx, 0 pending, exectime_ms=0 1578001ms thread-0 producer_plugin.cpp:207 block_production_loo ] initc generated block #2 @ 2017-09-04T04:26:18 with 0 trxs 0 pending ... eosio generated block 046b9984... #101527 @ 2018-04-01T14:24:58.000 with 0 trxs eosio generated block 5e527ee2... #101528 @ 2018-04-01T14:24:58.500 with 0 trxs ...
说明本地的单节点已经开始正常出块了。
如上次文章所讲,咱们创建的本地测试网络以下,并无单独的 keosd 钱包,而是使用了 nodeos 程序里的钱包插件。
若是你不知足于以上,能够对节点配置进行修改,配置文件位于:
上述文件夹中默认有 genesis.json
配置文件,能够直接修改它,或者在别的文件里再写一个新的配置文件,不过运行 nodeos 时,就要经过 --config-dir 命令指出新配置文件的位置。
配置文件夹还默认有一个 config.ini
文件。若是没有的话,nodeos 启动时会自动建立一个,但自动建立的 config.ini
文件是不让节点出块的,此时你须要使用 Ctrl-C
中止 nodeos,并编辑这个文件:
# 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 = eosio # 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 # This will be used by the validation step below, to view account history plugin = eosio::account_history_api_plugin
这样配置好后,从新启动 nodeos,就会顺利出块了。
nodeos 的运行数据文件夹(log和共享存储等数据)位于如下文件夹:
但也可使用 nodeos 的 --data-dir
命令从新指定数据文件夹。
圆方圆学院聚集大批区块链名师,打造精品的区块链技术课程。 在各大平台都长期有优质免费公开课,欢迎报名收看。