Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changes/20260909_cardano_rpc_grpc_reflection.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
project: cardano-rpc
pr: 1334
kind:
- feature
description: |
The cardano-rpc gRPC server now implements the gRPC Server Reflection Protocol (grpc.reflection.v1 and grpc.reflection.v1alpha), so tools such as grpcurl, Postman and buf can list and describe the server's available services and message schemas without needing local .proto files.
9 changes: 9 additions & 0 deletions cardano-rpc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,15 @@ Use a dedicated chain indexing service for those.
|--------|--------|
| [WatchTx](https://utxorpc.org/watch/spec/#watchservice) | ⬜ Not supported |

## Other gRPC services

Besides the UTxO RPC spec above, `cardano-rpc` implements the standard [gRPC Server Reflection Protocol](https://github.com/grpc/grpc/blob/master/doc/server-reflection.md), so tools such as `grpcurl` can list and describe the server's services without needing local `.proto` files.

| Method | Status |
|--------|--------|
| [grpc.reflection.v1.ServerReflection/ServerReflectionInfo](https://github.com/grpc/grpc/blob/master/doc/server-reflection.md) | ✅ Supported |
| [grpc.reflection.v1alpha.ServerReflection/ServerReflectionInfo](https://github.com/grpc/grpc/blob/master/doc/server-reflection.md) | ✅ Supported |

## Building

You need the following dependencies installed on your system:
Expand Down
13 changes: 12 additions & 1 deletion cardano-rpc/cardano-rpc.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ library
exposed-modules:
Cardano.Rpc.Client
Cardano.Rpc.Proto.Api.Node
Cardano.Rpc.Proto.Api.Reflection.V1
Cardano.Rpc.Proto.Api.Reflection.V1alpha
Cardano.Rpc.Proto.Api.UtxoRpc.Query
Cardano.Rpc.Proto.Api.UtxoRpc.Submit
Cardano.Rpc.Proto.Api.UtxoRpc.Sync
Expand All @@ -58,6 +60,8 @@ library
Cardano.Rpc.Server.Internal.Error
Cardano.Rpc.Server.Internal.Monad
Cardano.Rpc.Server.Internal.Node
Cardano.Rpc.Server.Internal.Reflection
Cardano.Rpc.Server.Internal.Reflection.DescriptorTable
Cardano.Rpc.Server.Internal.TimedCache
Cardano.Rpc.Server.Internal.Tracing
Cardano.Rpc.Server.Internal.UtxoRpc.Eval
Expand Down Expand Up @@ -96,7 +100,7 @@ library
base,
base16-bytestring,
bytestring,
cardano-api >=11.5,
cardano-api >=11.7,
Comment thread
carbolymer marked this conversation as resolved.
cardano-binary,
cardano-crypto,
cardano-crypto-class,
Expand Down Expand Up @@ -147,6 +151,10 @@ library gen
exposed-modules:
Proto.Cardano.Rpc.Node
Proto.Cardano.Rpc.Node_Fields
Proto.Grpc.Reflection.V1.Reflection
Proto.Grpc.Reflection.V1.Reflection_Fields
Proto.Grpc.Reflection.V1alpha.Reflection
Proto.Grpc.Reflection.V1alpha.Reflection_Fields
Proto.Utxorpc.V1beta.Cardano.Cardano
Proto.Utxorpc.V1beta.Cardano.Cardano_Fields
Proto.Utxorpc.V1beta.Query.Query
Expand Down Expand Up @@ -200,6 +208,7 @@ test-suite cardano-rpc-test
ouroboros-consensus,
ouroboros-consensus:cardano,
proto-lens,
proto-lens-protobuf-types,
rio,
scientific,
sop-extras,
Expand All @@ -226,6 +235,8 @@ test-suite cardano-rpc-test
Test.Cardano.Rpc.Pagination
Test.Cardano.Rpc.Predicate
Test.Cardano.Rpc.ProtocolParameters
Test.Cardano.Rpc.Reflection
Test.Cardano.Rpc.Reflection.DescriptorTable
Test.Cardano.Rpc.Script
Test.Cardano.Rpc.TxOutput
Test.Cardano.Rpc.Type
2,377 changes: 2,377 additions & 0 deletions cardano-rpc/gen/Proto/Grpc/Reflection/V1/Reflection.hs

Large diffs are not rendered by default.

257 changes: 257 additions & 0 deletions cardano-rpc/gen/Proto/Grpc/Reflection/V1/Reflection_Fields.hs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading