*.proto 文件生成各种语言的代码。这些工具使客户端可以轻松构建。通常,客户端连接(即传输层)可以轻松插拔和替换。让我们探索一种流行的传输方法:gRPC。
由于代码生成库很大程度上取决于你自己的技术栈,我们只介绍两种替代方案:
grpcurl用于通用调试和测试- 通过 Go、Python 或 TS 进行编程
grpcurl
grpcurl 类似于curl,但用于 gRPC。它也可作为 Go 库使用,但我们仅将其用作 CLI 命令进行调试和测试。按照上述链接中的说明进行安装。
假设你有一个本地节点正在运行(无论是 localnet 还是连接到实时网络),你应该能够运行以下命令来列出可用的 Protobuf 服务。你可以将 localhost:9090 替换为另一个节点的 gRPC server endpoint,该端点在 app.toml 中的 grpc.address 字段下配置:
cosmos.bank.v1beta1.Query。这称为 reflection,是一个返回所有可用 endpoint 描述的 Protobuf endpoint。每个服务代表一个不同的 Protobuf 服务,每个服务公开多个可查询的 RPC 方法。
要获取服务的描述,你可以运行以下命令:
使用 grpcurl 查询历史状态
你还可以通过在 gRPC 请求中传递一些 gRPC metadata 来查询历史数据:x-cosmos-block-height metadata 应包含要查询的区块。使用上述 grpcurl,命令如下:
