本文已参与「开源摘星计划」,欢迎正在阅读的你加入。活动链接:https://github.com/weopenprojects/WeOpen-Star
下载源码后,在 main 的 cmd 目录下,有一个 cli_start.go
其中可以看到 mainStart 就是启动方法
先看主脉络:
追踪内容使用:
if localconf.ChainMakerConfig.DebugConfig.IsTraceMemoryUsage {
traceMemoryUsage()
}
2.创建一个 chainMakerServer,调用它的初始化方法初始化
chainMakerServer := blockchain.NewChainMakerServer()
if err := chainMakerServer.Init(); err != nil {
log.Errorf("chainmaker server init failed, %s", err.Error())
return
}
复制代码
3.初始化一个 rpcserver
// init rpc server
rpcServer, err := rpcserver.NewRPCServer(chainMakerServer)
if err != nil {
log.Errorf("rpc server init failed, %s", err.Error())
return
}
复制代码
4.初始化一个监听服务
// init monitor server
monitorServer := monitor.NewMonitorServer()
复制代码
5.启动 chainMakerServer
if err := chainMakerServer.Start(); err != nil {
log.Errorf("chainmaker server startup failed, %s", err.Error())
return
}
复制代码
6.启动 rpcserver
if err := rpcServer.Start(); err != nil {
errorC <- err
}
复制代码
7.启动监听服务
if err := monitorServer.Start(); err != nil {
errorC <- err
}
复制代码
以上就是核心启动主链路了。
再精简一下
就是创建了一个 chainMakerServer,并调用初始化,然后包装成 rpc 服务,启动 rpc 服务。
至于内存追踪,服务监控,不是核心业务主链路。
下篇文章,我们继续分析主链路的初始化方法。
评论