Files
solana/storage-bigtable/README.md

23 lines
962 B
Markdown
Raw Permalink Normal View History

Long-term ledger storage with BigTable (bp #11222) (#11392) * ledger-storage-bigtable boilerplate (cherry picked from commit 9d2293bb32e90669ebd196886d4104d63e9bbfa8) * $ wget https://pki.goog/roots.pem -O pki-goog-roots.pem (cherry picked from commit 1617a025ce61bfeaf79b5a1cdff393346817747e) * Add access_token module (cherry picked from commit 59d266a1113f1b1452ffbc5644cf46ed79106e4e) * Add root_ca_certificate (cherry picked from commit faa016e4b7ee369e0cbf22bbab207b365d69ba74) * Add build-proto (cherry picked from commit c31e1f5bf0ffa5f1e1e0748e53a5109c5e0600dd) * UiTransactionEncoding is now copy (cherry picked from commit 494968be666032c62fd22a95cd87143303ccac12) * Increase timeout (cherry picked from commit 57dfebc5bad8745ecc532e6d5347eb0db8ff356e) * Add build-proto/build.sh output (cherry picked from commit 54dae6ba2c1b715f56ddaaaa650c07e5396ad1c6) * Supress doctest errors (cherry picked from commit 019c75797d94f9f4dfb0d886ad13f9f3c2757046) * Add compression (cherry picked from commit 243e05d59fbf586a822c2c3d4aad07790b55ea56) * Add bigtable (cherry picked from commit 6e0353965a3fd1ac2278f04aa880afe5faf990a2) * Add configuration info (cherry picked from commit 98cca1e774be21e116b52ca42c7e3b98d9485b13) * Add ledger-tool bigtable subcommands (cherry picked from commit f9049d6ee4e932a582b7825e236468ea37db8952) # Conflicts: # ledger-tool/Cargo.toml * Make room for tokio 0.2 (cherry picked from commit b876fb84ba74178443741ac9279105bd2453c2ff) # Conflicts: # core/Cargo.toml * Setup a tokio 0.2 runtime for RPC usage (cherry picked from commit 0e02740565b87508fd363101de9c292783bf85f3) # Conflicts: # core/Cargo.toml * Plumb Bigtable ledger storage into the RPC subsystem (cherry picked from commit dfae9a98644e29adc1d9dceeab53fa2b9b6d4335) # Conflicts: # core/Cargo.toml * Add RPC transaction history design (cherry picked from commit e56ea138c729e94e6bf91fa136a6bb7fbff36f2c) * Simplify access token refreshing (cherry picked from commit 1f7af14386b8b054a425f4507d80d4335f6a62e1) * Report block status more frequently (cherry picked from commit 22c46ebf9658da3dfff8c50e70b8f357a87e6d04) * after -> before (cherry picked from commit 227ea934ffe96677d398adb0b6b9d6d404ca9579) * Rebase * Cargo.lock Co-authored-by: Michael Vines <mvines@gmail.com>
2020-08-06 04:06:44 +00:00
## 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.