前言:有一个名为LND的项目,它使用了两个gRPC服务器。用户可以通过WalletUnlocker服务开始监听引导。这些方法与解锁LND节点以供使用相关。一旦解锁,LND进程将终止gRPC服务器,并在完全相同的端口上创建一个包含Lightning服务的新服务器。(完全不同的方法)
我想以编程方式ping LND节点的gRPC,并询问它“您当前提供的是什么服务,这样我就可以知道是否需要解锁您并等待,或者是否可以使用您的Lightning服务继续我的业务。”
加载包定义和创建凭据都取决于我尝试连接的服务,因为这两个服务器配置不同,但在同一个端口上……因此,我假设我想出的任何方法都不会依赖于包定义或杏仁饼凭据。如果我说错了,请告诉我。
谢谢。
发布于 2019-02-21 02:37:14
根据所讨论的服务和服务器的某些细节,可能有方法来确定这一点。如果服务器支持server reflection service,那么您可以查询该服务,以确定服务器正在为哪些服务/方法提供服务。如果它们不支持这一点,下一个最好的方法就是尝试向其中一个服务的方法发出请求;如果方法成功,您就知道服务器当前正在为该服务提供服务,如果它失败并出现UNIMPLEMENTED错误,您就知道它正在为另一个服务提供服务。
特别是关于包定义,这里最简单的策略是简单地为两个服务加载它们,然后根据正在运行的服务使用您需要的任何一个。
https://stackoverflow.com/questions/54781417
复制相似问题