入口分成三个部分
main函数入口
主循环入口
网络消息入口
main函数入口
- 成员结构
1 | main |
- 启动顺序
1 | main |
主循环入口
见证人插件,内部循环会调用函数,条件是node为见证人节点、时序轮到自己等
- witness_plugin::maybe_produce_block
Delay节点插件,定时从见证人节点获取已经落地的数据
- delayed_node_plugin::mainloop
网络消息入口
p2p网络消息接收点
- 有20多个协议,但业务主要用到trx_message_type,其下面有47个操作类型,如transfer_operation,limit_order_create_operation,limit_order_cancel_operation等
- application下的application_impl::handle_transaction 为trx_message_type类消息的接受点
- 此消息的处理在witness_plugin::maybe_produce_block中
ws/wss, http/https网络消息接收点
- login_api - websocket_api_connection 注册 login_api和database_api 接口
- block_api
- database_api - 默认
- network_broadcast_api - 默认
- network_node_api
- history_api - 默认
- crypto_api - 默认
- asset_api
- orders_api - 默认
- graphene::debug_witness::debug_api
- login_api - websocket_api_connection 注册 login_api和database_api 接口