anza-xyz / agave

Web-Scale Blockchain for fast, secure, scalable, decentralized apps and marketplaces.
https://www.anza.xyz/
Apache License 2.0
306 stars 138 forks source link

Feature Request: Make Solana Toolsuite more moduler #2247

Open jacobcreech opened 1 month ago

jacobcreech commented 1 month ago

Problem

Everyone's go to CLI suite when developing on Solana is the Solana tool suite. While this is great, the Solana tool suite has become very large, installing a number of different binaries locally. Most developers building dapps don't need all of these binaries. Same goes for validators, and also sometimes for core contributors.

Proposed Solution

Have different options to install what bins you want, instead of default all. My recommendation would be profiles for general users(devs), validators, all, and select individually what someone would want.

Dapp developers would likely need solana, solana-keygen, and solana-test-validator. Validators would need the above + solana-validator + probably some other bins. I'm not as familiar with the validator toolset, so I'll let someone else recommend a list.

t-nelson commented 1 month ago

see prior discord discussions on the topic:

gist is that a component subcommand be added to solana-install (ala rustup component) under which one installs ancillary bins. so normal install would hand you solana-install, solana and solana-keygen. then dev could do something like solana-install component add test-validator, solana-install component add cargo-sbf or maybe even a meta component like solana-install component add devtools.

this'll require some nontrivial changes to both the client and backend, but probably worth the effort in the long term