Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
b8d122c
Add Aptos DB fork tool
areshand Jul 17, 2026
4db7691
Fix fork tool source and event guards
areshand Jul 17, 2026
1f6fd37
Keep fork resources coherent
areshand Jul 17, 2026
cf6c5b1
Prove fork preserves post-genesis state
areshand Jul 18, 2026
c9bafd0
Support two-validator fork bootstrap
areshand Jul 20, 2026
7a84158
Keep fork validators active across epochs
areshand Jul 22, 2026
366cb59
Add funded test account rekeying
areshand Jul 23, 2026
a1bfd88
Merge branch 'm1' into worker/fork-tool-2
areshand Jul 23, 2026
88098bb
Default fork test account key to 0xabc
areshand Jul 23, 2026
a909f21
Add ephemeral fork network launcher
areshand Jul 27, 2026
6773017
Add SHA-based remote mainnet fork launcher
areshand Jul 27, 2026
07cbe29
Expose one managed fork submission API
areshand Jul 27, 2026
135a4aa
Move fork harness under testsuite
areshand Jul 27, 2026
90571e7
Hide internal fork lifecycle helper
areshand Jul 27, 2026
a206217
Update storage/db-tool/src/fork.rs
areshand Jul 28, 2026
cccd45b
Derive advertised fork endpoint host
areshand Jul 28, 2026
1590faf
Reserve Movement mainnet chain ID in fork tests
areshand Jul 29, 2026
8dbed21
Allow fork binaries from any origin branch
areshand Jul 29, 2026
09c63ad
fix(forktest): normalize configs for older nodes
areshand Jul 29, 2026
f2c80fa
fix(forktest): preserve API normalization scope
areshand Jul 29, 2026
b5f6f45
fix(forktest): bridge candidate config schema drift
areshand Jul 29, 2026
cab3ccf
fix(fork): disable pruning in ephemeral validators
areshand Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

34 changes: 33 additions & 1 deletion crates/aptos-genesis/src/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,11 @@ use aptos_types::{
keyless::Groth16VerificationKey,
on_chain_config::{
Features, GasScheduleV2, OnChainConsensusConfig, OnChainExecutionConfig,
OnChainJWKConsensusConfig, OnChainRandomnessConfig,
OnChainJWKConsensusConfig, OnChainRandomnessConfig, ValidatorSet,
},
transaction::Transaction,
validator_config::ValidatorConfig,
validator_info::ValidatorInfo,
waypoint::Waypoint,
};
use aptos_vm_genesis::default_gas_schedule;
Expand Down Expand Up @@ -155,6 +157,26 @@ impl ValidatorNodeConfig {
}
}

pub fn validator_info(&self) -> anyhow::Result<ValidatorInfo> {
let (_, _, private_identity, _) = self.get_key_objects(None)?;
let validator_configuration: ValidatorConfiguration = self.try_into()?;
let validator: aptos_vm_genesis::Validator = validator_configuration.try_into()?;
Ok(ValidatorInfo::new(
validator.owner_address,
validator.stake_amount,
ValidatorConfig::new(
private_identity.consensus_private_key.public_key(),
validator.network_addresses,
validator.full_node_network_addresses,
self.index as u64,
),
))
}

pub fn validator_config_path(&self) -> PathBuf {
self.dir.join(CONFIG_FILE)
}

fn insert_genesis(&mut self, genesis: &Transaction) {
let config = self.config.override_config_mut();
config.execution.genesis = Some(genesis.clone());
Expand Down Expand Up @@ -189,6 +211,16 @@ impl ValidatorNodeConfig {
}
}

pub fn validator_set_from_local_validators(
validators: &[ValidatorNodeConfig],
) -> anyhow::Result<ValidatorSet> {
validators
.iter()
.map(ValidatorNodeConfig::validator_info)
.collect::<anyhow::Result<Vec<_>>>()
.map(ValidatorSet::new)
}

impl TryFrom<&ValidatorNodeConfig> for ValidatorConfiguration {
type Error = anyhow::Error;

Expand Down
8 changes: 8 additions & 0 deletions storage/db-tool/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,27 @@ rust-version = { workspace = true }
anyhow = { workspace = true }
aptos-backup-cli = { workspace = true }
aptos-block-executor = { workspace = true }
aptos-cached-packages = { workspace = true }
aptos-config = { workspace = true }
aptos-crypto = { workspace = true }
aptos-db = { workspace = true, features = ["db-debugger"] }
aptos-db-indexer = { workspace = true }
aptos-executor = { workspace = true }
aptos-executor-types = { workspace = true }
aptos-genesis = { workspace = true }
aptos-logger = { workspace = true }
aptos-storage-interface = { workspace = true }
aptos-temppath = { workspace = true }
aptos-types = { workspace = true }
aptos-vm = { workspace = true }
bcs = { workspace = true }
clap = { workspace = true }
hex = { workspace = true }
itertools = { workspace = true }
move-core-types = { workspace = true }
rand = { workspace = true }
rayon = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
tokio = { workspace = true }

Expand All @@ -37,4 +44,5 @@ aptos-backup-cli = { workspace = true, features = ["testing"] }
aptos-backup-service = { workspace = true }
aptos-executor-test-helpers = { workspace = true }
aptos-indexer-grpc-table-info = { workspace = true }
reqwest = { workspace = true }
serial_test = { workspace = true }
Loading
Loading