@@ -26,6 +26,16 @@ type Flags struct {
2626var rootCmd = & cobra.Command {
2727 Use : "rpcdaemon" ,
2828 Short : "rpcdaemon is JSON RPC server that connects to turbo-geth node for remote DB access" ,
29+ PersistentPreRunE : func (cmd * cobra.Command , args []string ) error {
30+ if err := utils .SetupCobra (cmd ); err != nil {
31+ return err
32+ }
33+ return nil
34+ },
35+ PersistentPostRunE : func (cmd * cobra.Command , args []string ) error {
36+ utils .StopDebug ()
37+ return nil
38+ },
2939}
3040
3141func RootCommand () (* cobra.Command , * Flags ) {
@@ -70,20 +80,18 @@ func OpenDB(cfg Flags) (ethdb.KV, ethdb.Backend, error) {
7080 return db , txPool , err
7181}
7282
73- func StartRpcServer (ctx context.Context , cfg Flags , rpcAPI []rpc.API ) {
83+ func StartRpcServer (ctx context.Context , cfg Flags , rpcAPI []rpc.API ) error {
7484 // register apis and create handler stack
7585 httpEndpoint := fmt .Sprintf ("%s:%d" , cfg .HttpListenAddress , cfg .HttpPort )
7686 srv := rpc .NewServer ()
7787 if err := node .RegisterApisFromWhitelist (rpcAPI , cfg .API , srv , false ); err != nil {
78- log .Error ("Could not start register RPC apis" , "error" , err )
79- return
88+ return fmt .Errorf ("could not start register RPC apis: %w" , err )
8089 }
8190 handler := node .NewHTTPHandlerStack (srv , cfg .HttpCORSDomain , cfg .HttpVirtualHost )
8291
8392 listener , _ , err := node .StartHTTPEndpoint (httpEndpoint , rpc .DefaultHTTPTimeouts , handler )
8493 if err != nil {
85- log .Error ("Could not start RPC api" , "error" , err )
86- return
94+ return fmt .Errorf ("could not start RPC api: %w" , err )
8795 }
8896 extapiURL := fmt .Sprintf ("http://%s" , httpEndpoint )
8997 log .Info ("HTTP endpoint opened" , "url" , extapiURL )
@@ -94,4 +102,5 @@ func StartRpcServer(ctx context.Context, cfg Flags, rpcAPI []rpc.API) {
94102 }()
95103 sig := <- ctx .Done ()
96104 log .Info ("Exiting..." , "signal" , sig )
105+ return nil
97106}
0 commit comments