Two compounding errors during development led to pcli depending on all of rocksdb:
pcli imports the entire app crate in order to run stateless checks before submitting the transaction; this was originally intended for debugging and is not necessary.
The app crate is not split, like the other penumbra crates, into a component feature that gates all of the component logic behind a feature flag, allowing access to its data structures without the logic.
This causes problems for users trying to use pcli in high-security contexts that don't have glibc.
Describe the bug
Two compounding errors during development led to pcli depending on all of rocksdb:
pcli
imports the entireapp
crate in order to run stateless checks before submitting the transaction; this was originally intended for debugging and is not necessary.app
crate is not split, like the other penumbra crates, into acomponent
feature that gates all of the component logic behind a feature flag, allowing access to its data structures without the logic.This causes problems for users trying to use
pcli
in high-security contexts that don't have glibc.