【系列】EOS智能合约开发05 - nodeos启动单节点测试网络

in #cn7 years ago (edited)


 

 接上篇:  EOS智能合约开发04 - 搭建本地运行环境 

单节点测试网络(Single Node Testnet)

项目构建成功后,在build/programs/nodeos文件夹中,就会有可执行的 nodeos 命令。可以使用以下命令启动自己的单节点区块链:  

$ nodeos -e -p eosio --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --plugin eosio::account_history_api_plugin

 启动后,区块会持续产生,效果如下: 

 

 

修改nodeos配置

可以修改nodeos的配置,配置文件在不同的系统,位置不一样。

  • MacOS:~/Library/Application Support/eosio/nodeos/config
  • Linux:~/.local/share/eosio/nodeos/config

也可以使用如下命令为nodeos自定义配置文件夹: 

nodeos --config-dir

 nodeos默认使用genesis.json文件作为构建的种子。如果使用自定义文件夹,需要手动将genesis.json文件复制到你自定义的配置文件夹中。

config.ini

nodeos需要一个正常配置的config.ini文件才能正确工作。启动时,nodeos会在配置文件夹中查找config.ini。如果找不到,会创建一个默认的config.ini。编辑这个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 = 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时,可以看到类似于如下的日志信息,表示区块正在成功产生。  

eosio generated block 0f7b80fe... #1 @ 2018-04-09T19:44:36.500 with 0 trxs, lib: 0
eosio generated block 9311f74e... #2 @ 2018-04-09T19:44:37.000 with 0 trxs, lib: 1
eosio generated block 6a5f6c68... #3 @ 2018-04-09T19:44:37.500 with 0 trxs, lib: 2
eosio generated block 32f46511... #4 @ 2018-04-09T19:44:38.000 with 0 trxs, lib: 3
eosio generated block 183fc84d... #5 @ 2018-04-09T19:44:38.500 with 0 trxs, lib: 4
eosio generated block 8166a410... #6 @ 2018-04-09T19:44:39.000 with 0 trxs, lib: 5
eosio generated block e88a4f93... #7 @ 2018-04-09T19:44:39.500 with 0 trxs, lib: 6
eosio generated block 1cc4493c... #8 @ 2018-04-09T19:44:40.000 with 0 trxs, lib: 7
eosio generated block 4c748c71... #9 @ 2018-04-09T19:44:40.500 with 0 trxs, lib: 8
eosio generated block f4bf4234... #10 @ 2018-04-09T19:44:41.000 with 0 trxs, lib: 9
eosio generated block 0fe00a51... #11 @ 2018-04-09T19:44:41.500 with 0 trxs, lib: 10
eosio generated block 2ada76d1... #12 @ 2018-04-09T19:44:42.000 with 0 trxs, lib: 11
eosio generated block 95e8e128... #13 @ 2018-04-09T19:44:42.500 with 0 trxs, lib: 12
eosio generated block 96704510... #14 @ 2018-04-09T19:44:43.000 with 0 trxs, lib: 13
eosio generated block cfeb31d8... #15 @ 2018-04-09T19:44:43.500 with 0 trxs, lib: 14
eosio generated block 98df996b... #16 @ 2018-04-09T19:44:44.000 with 0 trxs, lib: 15
eosio generated block 251a0431... #17 @ 2018-04-09T19:44:44.500 with 0 trxs, lib: 16

 此时,nodeos由唯一的生产者运行,就是eosio,在 genesis.json 文件中定义了eosionodeos的运行时数据会保存起来,在不同的系统,保存位置不一样:

  • MacOS: ~/Library/Application Support/eosio/nodeos/data
  • Linux: ~/.local/share/eosio/nodeos/data

这个存储位置同样可以自定义,通过如下命令:  

nodeos --data-dir

 

每天学点Linux

在学习以太坊和EOS智能合约开发的过程中,不断出现很多命令行。不管是MacOS还是Linux,命令行都是经常被使用到的,这是因为MacOS和Linux系统都来源于Unix系统,保留了大量的命令行工具。这点不同于Windows系统,这也是很多开发版软件不支持Windows的原因。(当然,Windows也有命令行工具cmd,只是功能比较有限)。
因此,准备好好学习一下Linux系统和命令。在接下来的技术类文章中,会开辟一个子系列:每天学点Linux,作为文章的一部分出现在文末。
第一篇讲讲,为什么使用Linux? 

 现在,大多数的计算机用户只是熟悉图形用户界面(GUI),认为使用命令行界面(CLI)是过时的。这是不对的,一个好的命令行界面,是用来和计算机进行交流的最有效的方式,就像人类使用文字进行交流一样。

  GUI让简单的任务更容易完成, CLI使完成复杂的任务成为可能

另一方面,学习Linux命令行会让你受益匪浅。不同于其他一些计算机技能随时可能被淘汰的情况,命令行知识通过了时间的考验。你今天所学到的,十年以后都会有用处。

本文转自币乎-松果,商业转载请联系其作者。
 

Sort:  

EOS智能合约与DApp开发入门教程:

http://xc.hubwiz.com/course/5b52c0a2c02e6b6a59171ded?affid=730steemit

本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。