const AuthenticationTokenKey = "AuthenticationToken"
AuthenticationTokenKey is the key used in the context to authenticate clients. If this is set to anything other than "" in the config, then the server expects the client to set a key value in the context metadata to 'AuthenticationToken: cfg.AuthToken'
SimulateInterrupt requests invoking the clean termination process by an internal component instead of a SIGINT.
WalletMain is a work-around main function that is required since deferred functions (such as log flushing) are not called with calls to os.Exit. Instead, main runs this function and checks for a non-nil error, at which point any defers have already run, and if the error is non-nil, the program can be exited with an error exit status.