* Store program logs in blockstore / bigtable (TransactionWithStatusMeta) (#12678)
* introduce store program logs in blockstore / bigtable
* fix test, transaction logs created for successful transactions
* fix test for legacy bincode implementation around log_messages
* only api nodes should record logs
* truncate transaction logs to 100KB
* refactor log truncate for improved coverage
(cherry picked from commit 8f5431551e
)
# Conflicts:
# runtime/src/bank.rs
* Resolve merge conflicts in bank.rs
* rerun cargo fmt
Co-authored-by: Josh <josh.hundley@gmail.com>
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.