* Add CLI options and runtime support for selection of output snapshot version. (#10536)
(cherry picked from commit 6d81eede93
)
# Conflicts:
# core/src/accounts_hash_verifier.rs
# core/src/rpc_service.rs
# core/tests/bank_forks.rs
# ledger-tool/src/main.rs
# ledger/src/snapshot_package.rs
# validator/src/main.rs
* Fix conflicts
Co-authored-by: Kristofer Peterson <svenski123@users.noreply.github.com>
Co-authored-by: Ryo Onodera <ryoqun@gmail.com>
This commit is contained in:
@@ -6,7 +6,9 @@ use log::*;
|
||||
use rand::{thread_rng, Rng};
|
||||
use solana_clap_utils::{
|
||||
input_parsers::{keypair_of, keypairs_of, pubkey_of},
|
||||
input_validators::{is_keypair_or_ask_keyword, is_pubkey, is_pubkey_or_keypair, is_slot},
|
||||
input_validators::{
|
||||
is_keypair_or_ask_keyword, is_parsable, is_pubkey, is_pubkey_or_keypair, is_slot,
|
||||
},
|
||||
keypair::SKIP_SEED_PHRASE_VALIDATION_ARG,
|
||||
};
|
||||
use solana_client::rpc_client::RpcClient;
|
||||
@@ -22,7 +24,7 @@ use solana_core::{
|
||||
};
|
||||
use solana_download_utils::{download_genesis_if_missing, download_snapshot};
|
||||
use solana_ledger::{
|
||||
bank_forks::{CompressionType, SnapshotConfig},
|
||||
bank_forks::{CompressionType, SnapshotConfig, SnapshotVersion},
|
||||
hardened_unpack::{unpack_genesis_archive, MAX_GENESIS_ARCHIVE_UNPACKED_SIZE},
|
||||
};
|
||||
use solana_perf::recycler::enable_recycler_warming;
|
||||
@@ -699,6 +701,15 @@ pub fn main() {
|
||||
.default_value("100")
|
||||
.help("Number of slots between generating accounts hash."),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("snapshot_version")
|
||||
.long("snapshot-version")
|
||||
.value_name("SNAPSHOT_VERSION")
|
||||
.validator(is_parsable::<SnapshotVersion>)
|
||||
.takes_value(true)
|
||||
.default_value(SnapshotVersion::default().into())
|
||||
.help("Output snapshot version"),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("limit_ledger_size")
|
||||
.long("limit-ledger-size")
|
||||
@@ -974,6 +985,15 @@ pub fn main() {
|
||||
_ => panic!("Compression type not recognized: {}", compression_str),
|
||||
}
|
||||
}
|
||||
let snapshot_version =
|
||||
matches
|
||||
.value_of("snapshot_version")
|
||||
.map_or(SnapshotVersion::default(), |s| {
|
||||
s.parse::<SnapshotVersion>().unwrap_or_else(|err| {
|
||||
eprintln!("Error: {}", err);
|
||||
exit(1)
|
||||
})
|
||||
});
|
||||
validator_config.snapshot_config = Some(SnapshotConfig {
|
||||
snapshot_interval_slots: if snapshot_interval_slots > 0 {
|
||||
snapshot_interval_slots
|
||||
@@ -983,6 +1003,7 @@ pub fn main() {
|
||||
snapshot_path,
|
||||
snapshot_package_output_path: ledger_path.clone(),
|
||||
compression: snapshot_compression,
|
||||
snapshot_version,
|
||||
});
|
||||
|
||||
validator_config.accounts_hash_interval_slots =
|
||||
|
Reference in New Issue
Block a user