Working with gRPC for Penumbra
The Penumbra pd
application exposes a gRPC (opens in a new tab) service for integration
with other tools, such as pcli
or the web extension.
A solid understanding of how the gRPC methods work is helpful when
building software that interoperates with Penumbra.
Using gRPC UI
You can use the gRPC UI (opens in a new tab) interface to perform queries against a node's gRPC endpoint. It's also possible to run gRPC UI locally on your machine, to connect to a local devnet.
Using Buf Studio
The Buf Studio (opens in a new tab) webapp provides a polished GUI
and comprehensive documentation (opens in a new tab). However,
a significant limitation for use with Penumbra is that it lacks
support for streaming requests, such as penumbra.core.component.compact_block.v1.CompactBlockRangeRequest
(opens in a new tab).
Set the request type to gRPC-web at the bottom of the screen. You can then select a Method and explore the associated services. Click Send to submit the request and view response data in the right-hand pane.
Interacting with local devnets
Regardless of which interface you choose, you can connect to an instance of pd
running
on your machine, which can be useful while adding new features.
First, make sure you've joined a network
by setting up a node on your local machine. Once it's running, you can connect directly
to the pd port via http://localhost:8080
.
Alternatively, you can use pclientd
. First, make sure you've configured pclientd locally
with your full viewing key. Once it's running, you can connect directly
to the pclient port via http://localhost:8081
.