从今天开始,学习eosio的三大应用程序,分别是nodeos,keosd,cleos。简单说,nodeos是eosio的核心,负责数据同步,区块产生,交易校验等核心功能。keosd负责和key相关的管理,例如生成密钥对,对交易进行签名等。cleos是eos的client程序,和nodeos,keosd进行交互。
本文从nodes开始
https://developers.eos.io/manuals/eos/latest/nodeos/usage/nodeos-options
https://developers.eos.io/manuals/eos/latest/nodeos/usage/nodeos-configuration
1 概述
nodeos是一个命令行接口(command line interface,CLI)程序。因此,它可以通过手动方式从命令行启动,也可以通过自动化脚本启动。nodeos的行为主要通过加载的插件和插件相关的选项决定。主要包括两大类选项:nodeos相关(nodeos-specific)的选项和插件相关(plugin-sepcific)的选项。
2 nodeos相关的选项
nodeos相关的选项主要用于nodeos自身内部处理目的。例如设置区块链数据存储位置,设置nodeso配置文件位置,设置日志配置文件的名字和路径等等。
个人理解,应该也包括指定使用那些插件。
通过node --help命令可以查看nodeos相关的配置项,如下:
3 插件相关的选项
插件相关的选项控制nodeos插件的行为。
每个插件相关选项都有唯一的名字,因此它可以在命令行或者config.ini中以任意顺序排列。
当指定插件相关选项时,对应的插件必须通过--plugin或者ini中才行,否则忽略相关选项。
4 配置
nodeos相关的选项只能通过命令行的方式配置。而插件相关的配置既可以通过命令行方式配置,也可以通过配置文件方式配置。
所有命令行和配置文件中的选项都可以通过nodeos --help命令查看。
每一个配置文件中的选项都有与之对应的命令行选项。但是,不是每个命令行选项都有与之对应的配置文件选项。
也就是说,命令行选项包含所有eosio的选项,而配置文件选项只是命令行选项的子集。
例如,大多数执行操作的插件相关选项不能在配置文件中配置。如state_history_plugin的--delete-state-history。
4.1 配置文件位置
默认情况下,config.ini文件位于以下位置:
Mac OS: ~/Library/Application Support/eosio/nodeos/config
Linux: ~/.local/share/eosio/nodeos/config
当然,可以通过--config path/to/config.ini设置配置文件路径。
5 一个例子
以下展示了典型的启动一个可以生产块的nodeos节点:
nodeos --replay-blockchain \ -e -p eosio \ --plugin eosio::producer_plugin \ --plugin eosio::chain_api_plugin \ --plugin eosio::http_plugin \ >> nodeos.log 2>&1 &
以下实例展示更多常用参数:
nodeos \ -e -p eosio \ --data-dir /users/mydir/eosio/data \ --config-dir /users/mydir/eosio/config \ --plugin eosio::producer_plugin \ --plugin eosio::chain_plugin \ --plugin eosio::http_plugin \ --plugin eosio::state_history_plugin \ --contracts-console \ --disable-replay-opts \ --access-control-allow-origin='*' \ --http-validate-host=false \ --verbose-http-errors \ --state-history-dir /shpdata \ --trace-history \ --chain-state-history \ >> nodeos.log 2>&1 &
以上nodeos命令启动一个生产块的节点,其中:
1、可以生产块(-e)
2、将自己标识为块生产者“eosio”(-p)
3、--data-dir设置区块链数据的目录
4、--config-dir设置配置文件的目录
5、--plugin导入producer_plugin, chain_plugin, http_plugin, state_history_plugin
6、传chain_plugin相关的选项:--contracts-console, --disable-replay-opts
7、传http_plugin相关的选项:--access-control-allow-origin, --http-validate-host, --verbose-http-errors
8、传state_history相关的选项:--state-history-dir, --trace-history, --chain-state-history
9、重定向stdout和stderr信息到nodeos.log文件
10、通过&在后台执行
网友评论