区块链3.0:拥抱EOS (5)

下面来逐一分析一下这个日志内容,可以看出EOS启动私链节点是通过插件实现的,在启动私链前,要对插件进行初始化配置,启动各依赖组件处理器。下面来列举一下主要插件内容:

wallet_plugin,钱包管理相关,启动阶段只出现过一次,说明它的功能主要依赖启动后的操作,而在启动期间需要做的配置很少。

wallet_api_plugin,依赖于wallet_plugin,出现一次,应该是提供外部调用与钱包交互的接口服务。

http_plugin,启动阶段大量出现的插件,说明在准备期,针对HTTP的配置和添加接口服务非常多。配置包括url,端口,监听。接口服务包括钱包相关,链相关,账户相关的一系列api地址。

chain_plugin,链插件配置,出现了几次,除了初始化启动以外,还有针对链数据读取模式的配置为read/write模式,生成创世块配置文件genesis.json,以及展示了创世区块的各种属性信息。

chain_api_plugin,同样的,依赖于chain_plugin,提供外部调用链相关操作的接口服务。

net_plugin,网络插件,出现了几次,是对网络节点的基本配置,包括网络日志的级别为info,本地网络监听端口,生成节点id。最后启动监听器,并设置了以该网络节点为服务器的客户端最多能够连入25个。

main,主插件,对eosio这整个软件的一个主要插件,配置了eosio的版本以及展示了eosio工作的本地root地址。

account_history_api_plugin,顾名思义,账户历史接口插件,估计是与账户历史相关的供外部调用的接口服务。

producer_plugin,区块生产者插件,插件启动。

以上出现的所有插件亦可理解为组件。

接着看日志,提示我创世块时间戳过时,可以通过一个参数来修改,下面我尝试修改一下,在以上启动命令加入了参数,重新启动:

--genesis-timestamp 2018-04-13T12:00:00.000

重新启动以后,打印出来的日志中,前面的都是相同的,我们从producer_plugin贴出来是:

862009ms thread-0 producer_plugin.cpp:161 plugin_startup ] producer plugin: plugin_startup() begin 862009ms thread-0 producer_plugin.cpp:166 plugin_startup ] Launching block production for 1 producers. 862009ms thread-0 producer_plugin.cpp:176 plugin_startup ] producer plugin: plugin_startup() end 862501ms thread-0 fork_database.cpp:77 _push_block ] Number of missed blocks: 2783 eosio generated block 8e2a6ce1... #34 @ 2018-04-13T03:14:22.500 with 0 trxs, lib: 33 eosio generated block eb5e67b9... #35 @ 2018-04-13T03:14:23.000 with 0 trxs, lib: 34 eosio generated block 5aa06ff6... #36 @ 2018-04-13T03:14:23.500 with 0 trxs, lib: 35

可以看到,那个关于创世块时间戳的提示已经消失,producer_plugin插件启动开始与完毕。接下来就是

fork_database程序,推送区块,报出了消失区块好2783。TODO:这一行还待未来分析解决。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwzpw.html