Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add flag to skip genesis account creation in solana-genesis #2096

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

FarinM
Copy link

@FarinM FarinM commented Jul 11, 2024

Problem

During solana-genesis, the genesis account list automatically gets added for all cluster types that aren't of type development. At the same time, development enables all feature gates which can be unfavorable and unwanted for spinning up private networks.

Summary of Changes

Add optional --skip-genesis-accounts flag

@steviez
Copy link

steviez commented Jul 12, 2024

@FarinM - To confirm your desired use case, you want the development behavior of NOT adding all those additional accounts, but also the ability to NOT enable all features ?

With tip-of-master (or 2.0 branch), using development will only yield the bootstrap validator + faucet accounts, in addition to feature gates.

@FarinM
Copy link
Author

FarinM commented Jul 12, 2024

@FarinM - To confirm your desired use case, you want the development behavior of NOT adding all those additional accounts, but also the ability to NOT enable all features ?

Not fully - I should've worded it better. Right now, if you want to create a cluster without enabling all features you're forced to either use mainnet, testnet or devnet. The problem here is that there's no way to use one of these cluster types without adding all genesis accounts, so you currently can't create a genesis config without all features & without genesis accounts. The idea was to add a flag that skips genesis accounts to make this possible.

@steviez
Copy link

steviez commented Jul 24, 2024

Got it, I think we're going to add a flag to deactivate individual features here:
#2246

Right now, if you want to create a cluster without enabling all features you're forced to either use mainnet, testnet or devne

Will this suffice for your use-case ? I'm inclined to think that there are maybe just a few features that you don't want to activate ?

Also, just incase you were unaware, the feature gate logic eventually goes away. Namely, if we consider some hypothetical code

let is_feature_x_active = ...;

if is_feature_x_active {
    do_new_feature_x_stuff();
} else {
    do_old_feature_x_stuff();
}

After the feature has been activated on all clusters, the code will be cleaned up to look like this

do_new_feature_x_stuff();

This means that the ability to actually disable a feature goes away at some point

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants