在“【区块链 | 智能合约】Ethereum源代码(2)- go-ethereum 客户端入口代码和Node分析”一文中,我们提到Ethereum作为一个service,被Node 注册进去。Node start的时候会启动其注册的所有服务,Ethereum service也是一样。
- func geth(ctx *cli.Context) error {
- if args := ctx.Args().Slice(); len(args) > 0 {
- return fmt.Errorf("invalid command: %q", args[0])
- }
-
- prepare(ctx)
- stack, backend := makeFullNode(ctx)
- defer stack.Close()
-
- startNode(ctx, stack, backend, false)
- stack.Wait()
- return nil
- }
-
-
- stack, backend := makeFullNode(ctx) 启动
初始化方法
// New creates a new