[rpc] Fatal `getSignaturesForAddress()` when Bigtable errors (#3700) * Unindent code in `get_signatures_for_address` * Add a custom JSON-RPC error to throw when long-term storage (ie. Bigtable) can't be reached * When the `before`/`until` signatures can't be found, throw `SignatureNotFound` instead of `RowNotFound` * Fatal `getSignaturesForAddress` calls when Bigtable must be queried but can't be reached (cherry picked from commit 52f132cc41c5e9b992a0574d47f6dcaf91980ae9) Co-authored-by: Steven Luscher <steveluscher@users.noreply.github.com> |
||
---|---|---|
.. | ||
build-proto | ||
proto | ||
src | ||
Cargo.toml | ||
README.md | ||
init-bigtable.sh |
README.md
BigTable Setup
Development Environment
The Cloud BigTable emulator can be used during development/test. See https://cloud.google.com/bigtable/docs/emulator for general setup information.
Process:
- Run
gcloud beta emulators bigtable start
in the background - Run
$(gcloud beta emulators bigtable env-init)
to establish theBIGTABLE_EMULATOR_HOST
environment variable - Run
./init-bigtable.sh
to configure the emulator - Develop/test
Production Environment
Export a standard GOOGLE_APPLICATION_CREDENTIALS
environment variable to your
service account credentials. The project should contain a BigTable instance
called solana-ledger
that has been initialized by running the ./init-bigtable.sh
script.
Depending on what operation mode is required, either the
https://www.googleapis.com/auth/bigtable.data
or
https://www.googleapis.com/auth/bigtable.data.readonly
OAuth scope will be
requested using the provided credentials.
Forward proxy
Export BIGTABLE_PROXY
environment variable for the forward proxy as you would
for HTTP_PROXY
. This will establish a tunnel through the forward proxy for
gRPC traffic (the tunneled traffic will still use TLS as normal).