solana/storage-bigtable
mergify[bot] 8b8024f271
v2.1: [rpc] Fatal `getSignaturesForAddress()` when Bigtable errors (backport of #3700) (#4443)
[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>
2025-01-16 08:05:25 -08:00
..
build-proto chore: workspace inheritance (#29893) 2023-02-23 22:01:54 +08:00
proto chore: remove unused clippy attributes, derive_partial_eq_without_eq (#1516) 2024-05-29 12:36:30 +00:00
src v2.1: [rpc] Fatal `getSignaturesForAddress()` when Bigtable errors (backport of #3700) (#4443) 2025-01-16 08:05:25 -08:00
Cargo.toml link openssl statically for Windows (#3118) 2024-10-14 19:11:01 +08:00
README.md
init-bigtable.sh storage-bigtable: Upload entries (#34099) 2023-11-28 11:47:22 -07:00

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:

  1. Run gcloud beta emulators bigtable start in the background
  2. Run $(gcloud beta emulators bigtable env-init) to establish the BIGTABLE_EMULATOR_HOST environment variable
  3. Run ./init-bigtable.sh to configure the emulator
  4. 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).