*.proto 파일에서 다양한 언어로 코드를 생성하는 도구를 포함하여 여러 사용 사례를 위한 도구를 개발했습니다. 이러한 도구를 통해 클라이언트를 쉽게 구축할 수 있습니다. 종종 클라이언트 연결(즉, 전송)은 쉽게 교체할 수 있습니다. 인기 있는 전송 방법인 gRPC를 살펴보겠습니다.
코드 생성 라이브러리는 대부분 여러분의 기술 스택에 따라 다르므로, 두 가지 대안만 제시합니다:
- 일반적인 디버깅 및 테스트를 위한
grpcurl - Go, Python 또는 TS를 통한 프로그래밍 방식
grpcurl
grpcurl은curl과 비슷하지만 gRPC용입니다. Go 라이브러리로도 사용할 수 있지만, 여기서는 디버깅 및 테스트 목적의 CLI 명령으로만 사용합니다. 설치하려면 이전 링크의 지침을 따르세요.
로컬 노드가 실행 중이라고 가정하면(로컬넷이든 라이브 네트워크에 연결되어 있든), 다음 명령을 실행하여 사용 가능한 Protobuf 서비스를 나열할 수 있습니다. localhost:9090을 다른 노드의 gRPC 서버 엔드포인트로 대체할 수 있으며, 이는 app.toml 내의 grpc.address 필드에서 구성됩니다:
cosmos.bank.v1beta1.Query와 같은 gRPC 서비스 목록이 표시됩니다. 이것을 리플렉션이라고 하며, 사용 가능한 모든 엔드포인트에 대한 설명을 반환하는 Protobuf 엔드포인트입니다. 이들 각각은 서로 다른 Protobuf 서비스를 나타내며, 각 서비스는 쿼리할 수 있는 여러 RPC 메서드를 노출합니다.
서비스에 대한 설명을 얻으려면 다음 명령을 실행하세요:
grpcurl을 사용한 과거 상태 쿼리
일부 gRPC 메타데이터를 쿼리에 전달하여 과거 데이터를 쿼리할 수도 있습니다:x-cosmos-block-height 메타데이터에 쿼리할 블록이 포함되어야 합니다. 위의 grpcurl을 사용하면 명령은 다음과 같습니다:
