nodeos: EOS 系統的核心進程,也就是所謂的“節點”。
cleos:本地的命令行工具,通過命令行與真人用戶交互,并與節點(nodeos)和錢包(keosd)通信。是用戶或者開發者與節點進程交互的橋梁。
keosd:本地錢包工具。可以管理多個含有私鑰的錢包并加密。
本篇教程適用于以下系統,但是不論你的電腦是 windows 還是 mac,都強烈建議安裝一個虛擬機,在 Ubuntu 上搞,因為 Mac 上有很多坑。安裝 Ubuntu 虛擬機有關教程大家可以在網上搜到。
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).
配置要求:
如果機器內存不夠 8G,自動編譯腳本會報錯。
運行 EOS 需要一點 linux 和 github 基礎,不過不要嫌麻煩,以后開發 EOS 合約需要大量這方面的知識。推薦你先按步驟搞起來,有不明白的可以參考以下文章。別怕,誰也不是生下來就什么都會的。
linux 命令基礎: https://linux.cn/article-6160-1.html
github 基礎: http://www.runoob.com/w3cnote/git-guide.html
如果你是 Mac,需要先下載 git,可以搜索 “Mac git” 就能找的各種文章教你在 Mac 上安裝 git。
首先使用 cd 命令進入你想安裝的文件夾,我一般就是根目錄了,執行以下命令下載 EOS 代碼:
git clone https://github.com/EOSIO/eos --recursive
注意要加后面這個 --recursive 命令,因為 EOS 有幾個子模塊,這樣就能全部下載下來,如果忘了這個命令,使用下面的命令可以補救:
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=01575001ms thread-0 producer_plugin.cpp:207 block_production_loo ] initm generated block #1 @ 2017-09-04T04:26:15 with 0 trxs 0 pending1578001ms thread-0 chain_controller.cpp:235 _push_block ] initc #2 @2017-09-04T04:26:18 | 0 trx, 0 pending, exectime_ms=01578001ms 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 trxseosio 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 命令重新指定數據文件夾。
來源:圓方圓區塊鏈