code: func geth(ctx *cli.Context) error {
  	if args := ctx.Args(); len(args) > 0 {
  		return fmt.Errorf("invalid command: %q", args[0])
  	}
  	node := makeFullNode(ctx)
  	defer node.Close()
  	startNode(ctx, node)
  	node.Wait()
  	return nil
  }
docs: // geth is the main entry point into the system if no special subcommand is ran.
  // It creates a default node based on the command line arguments and runs it in
  // blocking mode, waiting for it to be shut down.