通过命令方式启动,命令如下:
- 启动命令
- 加载配置文件
- 追踪内存使用协程开启
- 初始化chain maker server
- 初始化P2P网络
- 初始化blockchain
- 初始化rpc server
- 初始化 monitor server
- 单独开go 协程处理退出信号
- 启动 chain maker
- 启动rpc server
- 启动 monitor server
- 启动pprof
- 根据退出信号退出rpc,monitor 以及chain maker
- 版本命令
- 配置命令
- 重新构建数据库命令
blockchain 初始化主要包括几个关键模块,通过动态注册表的形式存储相关初始化模块,同时还支持模块扩展,有以下模块:
- 事件订阅器
- 基于观察者模式实现的事件订阅,用来订阅区块链网络中的事件,不仅仅是对内部的事件订阅,同时外部可以通过rpc 来订阅此事件 [asaskevich/EventBus: Go] Lightweight eventbus with async compatibility for Go (github.com)
- 存储
- 账本信息
- 链配置
- 交易过滤
- 网络服务
- VM
- Tx pool
- 同步
- 共识