最近准备研究EOS的合约开发,第一步就是需要进行搭建本地节点,在网上查阅了一些资料,也踩了不少坑,最终发现还是官方文档最靠谱:https://github.com/EOSIO/eos/wiki/Local-Environment
本文将介绍通过拉取eosio源代码进行编译启动本地节点~
系统要求
MacOS Darwin 10.12或者更高 (推荐MacOS 10.13.x),其他系统可以在官方文档查阅
8G内存,20G硬盘
编译eosio源码
首先拉取eos源码:
git clone https://github.com/EOSIO/eos --recursive
拉取代码需要一点时间,项目工程比较大。拉取完代码后进入eos目录,看到目前所在的分支是master,网上很多人推荐切换到dawn-2.x比较稳定,这里我还是保持使用master分支。
执行eosio_build.sh进行编译:
./eosio_build.sh
这一步编译会比较久,大概1个小时。编译完成后会生成一个build目录。
可执行文件说明
在编译完成后,在build/programs下可以看到很多可执行文件夹,主要了解这几个的功能。
nodeos - 服务端区块链节点组件
cleos - 与区块链交互和管理钱包的命令行工具
keosd -管理钱包的组件
如果想更方便使用上述指令,可以执行:
cd build
sudo make install
这样就可以全局使用这些指令了。
启动节点
切换到eos/build/programs/nodeos目录下,执行./nodeos指令,这时候会程序会卡住不懂,不会进行挖矿,这是因为没有进行文件配置。
进入~/Library/Application Support/eosio/nodeos/config目录,修改config.ini文件:
# Track only transactions whose scopes involve the listed accounts. Default is to track all transactions. (eosio::account_history_plugin)
# filter_on_accounts =
# Limits the maximum time (in milliseconds) processing a single get_transactions call. (eosio::account_history_plugin)
get-transactions-time-limit = 3
# override the initial timestamp in the Genesis State file (eosio::chain_plugin)
# genesis-timest