Skip to content

Commit 8f75b39

Browse files
authored
Merge pull request #19 from movementlabsxyz/0xmovses/execution-updates
Aptos Execution Updates
2 parents 198b270 + 5cfac9f commit 8f75b39

File tree

17 files changed

+1117
-851
lines changed

17 files changed

+1117
-851
lines changed

Cargo.toml

+29-15
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ members = [
1111

1212
[workspace.features]
1313
sov-aptos = ["experimental"]
14+
defailt = ["m2/rollup"]
1415

1516
[workspace.package]
1617
version = "0.3.0"
@@ -24,6 +25,7 @@ rust-version = "1.73"
2425

2526
[workspace.dependencies]
2627
auto_impl = "1.2.0"
28+
chrono = "0.4.37"
2729
serde = { version = "1.0.192", features = ["derive", "rc"] }
2830
serde_json = { version = "1.0.81", features = [
2931
"preserve_order",
@@ -45,7 +47,9 @@ proptest = { version = "1.3.1", default-features = false, features = ["alloc"] }
4547
poem-openapi = { version = "=2.0.11", features = ["swagger-ui", "url"] }
4648
schemars = { version = "0.8.16", features = ["derive"] }
4749
thiserror = "1.0.50"
48-
x25519-dalek = "2.0.1"
50+
x25519-dalek = "1.0.1"
51+
rand = "0.7.3"
52+
rand_core = "0.5.1"
4953

5054
# Sovereign Labs dependencies
5155
sov-modules-api = { git = "ssh://git@github.com/Sovereign-Labs/sovereign-sdk-wip.git", rev = "517e99e558513e24983d8d09ef16a73675ea1a1b" }
@@ -83,19 +87,30 @@ ethers-middleware = { version = "=2.0.10", default-features = false }
8387
# Aptos dependencies
8488
# We use a forked version so that we can override dependency versions. This is required
8589
# to be avoid depenedency conflicts with other Sovereign Labs crates.
86-
aptos-vm = { git = "https://github.com/0xmovses/aptos-core", rev = "bfa7d8f9a6467e4b5c84344c2024f60a306536d4" }
87-
aptos-sdk = { git = "https://github.com/0xmovses/aptos-core", rev = "bfa7d8f9a6467e4b5c84344c2024f60a306536d4" }
88-
aptos-consensus-types = { git = "https://github.com/0xmovses/aptos-core", rev = "bfa7d8f9a6467e4b5c84344c2024f60a306536d4" }
89-
aptos-crypto = { git = "https://github.com/0xmovses/aptos-core", rev = "bfa7d8f9a6467e4b5c84344c2024f60a306536d4" }
90-
aptos-db = { git = "https://github.com/0xmovses/aptos-core", rev = "bfa7d8f9a6467e4b5c84344c2024f60a306536d4" }
91-
aptos-api-types = { git = "https://github.com/0xmovses/aptos-core", rev = "bfa7d8f9a6467e4b5c84344c2024f60a306536d4" }
92-
aptos-types = { git = "https://github.com/0xmovses/aptos-core", rev = "bfa7d8f9a6467e4b5c84344c2024f60a306536d4" }
93-
aptos-api = { git = "https://github.com/0xmovses/aptos-core", rev = "bfa7d8f9a6467e4b5c84344c2024f60a306536d4" }
94-
aptos-storage-interface = { git = "https://github.com/0xmovses/aptos-core", rev = "bfa7d8f9a6467e4b5c84344c2024f60a306536d4" }
95-
aptos-block-executor = { git = "https://github.com/0xmovses/aptos-core", rev = "bfa7d8f9a6467e4b5c84344c2024f60a306536d4" }
96-
aptos-vm-types = { git = "https://github.com/0xmovses/aptos-core", rev = "bfa7d8f9a6467e4b5c84344c2024f60a306536d4" }
97-
aptos-vm-logging = { git = "https://github.com/0xmovses/aptos-core", rev = "bfa7d8f9a6467e4b5c84344c2024f60a306536d4" }
98-
aptos-language-e2e-tests = { git = "https://github.com/0xmovses/aptos-core", rev = "bfa7d8f9a6467e4b5c84344c2024f60a306536d4" }
90+
aptos-vm = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
91+
aptos-sdk = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
92+
aptos-consensus-types = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
93+
aptos-crypto = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
94+
aptos-db = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
95+
aptos-api-types = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
96+
aptos-types = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
97+
aptos-api = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
98+
aptos-storage-interface = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
99+
aptos-block-executor = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
100+
aptos-vm-types = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
101+
aptos-vm-logging = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
102+
aptos-language-e2e-tests = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
103+
aptos-framework = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
104+
aptos-config = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
105+
aptos-vm-genesis = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
106+
aptos-executor = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
107+
aptos-executor-types = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
108+
aptos-executor-test-helpers = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
109+
aptos-bitvec = { git = "https://github.com/0xmovses/aptos-core", rev = "830bb59ead3c5082734486adf1dd5177d349d2a1" }
110+
111+
move-binary-format = { git = "https://github.com/diem/move" }
112+
move-table-extension = { git = "https://github.com/diem/move" }
113+
move-core-types = { git = "https://github.com/diem/move" }
99114

100115
# https://github.com/paradigmxyz/reth/tree/c0655fed8915490f82d4acf8900a16a10554cbfb
101116
reth-primitives = { git = "https://github.com/paradigmxyz/reth", rev = "c0655fed8915490f82d4acf8900a16a10554cbfb", default-features = false }
@@ -126,7 +141,6 @@ doc_link_with_quotes = "deny"
126141
match_same_arms = "deny"
127142
semicolon_if_nothing_returned = "deny"
128143

129-
130144
[patch.crates-io]
131145
merlin = { git = "https://github.com/aptos-labs/merlin" }
132146
x25519-dalek = { git = "https://github.com/aptos-labs/x25519-dalek", branch = "zeroize_v1" }

m2/rollup/src/bin/node.rs

+110-125
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
33
use anyhow::Context;
44
use clap::Parser;
5+
#[cfg(feature = "celestia_da")]
6+
use m2_rollup::celestia_rollup::CelestiaRollup;
7+
#[cfg(feature = "mock_da")]
8+
use m2_rollup::mock_rollup::MockRollup;
59
use m2_stf::genesis_config::GenesisPaths;
610
#[cfg(feature = "celestia_da")]
711
use sov_celestia_adapter::CelestiaConfig;
@@ -10,10 +14,6 @@ use sov_mock_da::MockDaConfig;
1014
use sov_modules_rollup_blueprint::{Rollup, RollupBlueprint};
1115
use sov_modules_stf_blueprint::kernels::basic::BasicKernelGenesisConfig;
1216
use sov_modules_stf_blueprint::kernels::basic::BasicKernelGenesisPaths;
13-
#[cfg(feature = "celestia_da")]
14-
use sov_rollup_starter::celestia_rollup::CelestiaRollup;
15-
#[cfg(feature = "mock_da")]
16-
use m2_rollup::mock_rollup::MockRollup;
1717
use sov_stf_runner::RollupProverConfig;
1818
use sov_stf_runner::{from_toml_path, RollupConfig};
1919
use std::str::FromStr;
@@ -22,142 +22,127 @@ use tracing_subscriber::prelude::*;
2222
use tracing_subscriber::{fmt, EnvFilter};
2323

2424
// config and genesis for mock da
25-
#[cfg(feature = "mock_da")]
26-
const DEFAULT_CONFIG_PATH: &str = "../../rollup_config.toml";
27-
#[cfg(feature = "mock_da")]
28-
const DEFAULT_GENESIS_PATH: &str = "../../test-data/genesis/mock/";
29-
#[cfg(feature = "mock_da")]
30-
const DEFAULT_KERNEL_GENESIS_PATH: &str = "../../test-data/genesis/mock/chain_state.json";
31-
32-
// config and genesis for local docker celestia
33-
#[cfg(feature = "celestia_da")]
34-
const DEFAULT_CONFIG_PATH: &str = "../../celestia_rollup_config.toml";
35-
#[cfg(feature = "celestia_da")]
36-
const DEFAULT_GENESIS_PATH: &str = "../../test-data/genesis/celestia/";
37-
#[cfg(feature = "celestia_da")]
38-
const DEFAULT_KERNEL_GENESIS_PATH: &str = "../../test-data/genesis/celestia/chain_state.json";
25+
// #[cfg(feature = "mock_da")]
26+
// const DEFAULT_CONFIG_PATH: &str = "../../rollup_config.toml";
27+
// #[cfg(feature = "mock_da")]
28+
// const DEFAULT_GENESIS_PATH: &str = "../../test-data/genesis/mock/";
29+
// #[cfg(feature = "mock_da")]
30+
// const DEFAULT_KERNEL_GENESIS_PATH: &str = "../../test-data/genesis/mock/chain_state.json";
31+
//
32+
// // config and genesis for local docker celestia
33+
// #[cfg(feature = "celestia_da")]
34+
// const DEFAULT_CONFIG_PATH: &str = "../../celestia_rollup_config.toml";
35+
// #[cfg(feature = "celestia_da")]
36+
// const DEFAULT_GENESIS_PATH: &str = "../../test-data/genesis/celestia/";
37+
// #[cfg(feature = "celestia_da")]
38+
// const DEFAULT_KERNEL_GENESIS_PATH: &str = "../../test-data/genesis/celestia/chain_state.json";
3939

4040
#[derive(Parser, Debug)]
4141
#[command(author, version, about, long_about = None)]
4242
struct Args {
43-
/// The path to the rollup config.
44-
#[arg(long, default_value = DEFAULT_CONFIG_PATH)]
45-
rollup_config_path: String,
46-
47-
/// The path to the genesis config.
48-
#[arg(long, default_value = DEFAULT_GENESIS_PATH)]
49-
genesis_paths: String,
50-
/// The path to the kernel genesis config.
51-
#[arg(long, default_value = DEFAULT_KERNEL_GENESIS_PATH)]
52-
kernel_genesis_paths: String,
43+
/// The path to the rollup config.
44+
#[arg(long, default_value = DEFAULT_CONFIG_PATH)]
45+
rollup_config_path: String,
46+
47+
/// The path to the genesis config.
48+
#[arg(long, default_value = DEFAULT_GENESIS_PATH)]
49+
genesis_paths: String,
50+
/// The path to the kernel genesis config.
51+
#[arg(long, default_value = DEFAULT_KERNEL_GENESIS_PATH)]
52+
kernel_genesis_paths: String,
5353
}
5454

5555
#[tokio::main]
5656
async fn main() -> Result<(), anyhow::Error> {
57-
// Initializing logging
58-
tracing_subscriber::registry()
59-
.with(fmt::layer())
60-
//.with(EnvFilter::from_default_env())
61-
.with(EnvFilter::from_str("info,hyper=info").unwrap())
62-
.init();
63-
64-
let args = Args::parse();
65-
let rollup_config_path = args.rollup_config_path.as_str();
66-
67-
let genesis_paths = args.genesis_paths.as_str();
68-
let kernel_genesis_paths = args.kernel_genesis_paths.as_str();
69-
70-
let prover_config = if option_env!("CI").is_some() {
71-
Some(RollupProverConfig::Execute)
72-
} else if let Some(prover) = option_env!("SOV_PROVER_MODE") {
73-
match prover {
74-
"simulate" => Some(RollupProverConfig::Simulate),
75-
"execute" => Some(RollupProverConfig::Execute),
76-
"prove" => Some(RollupProverConfig::Prove),
77-
_ => {
78-
tracing::warn!(
79-
prover_mode = prover,
80-
"Unknown sov prover mode, using 'Skip' default"
81-
);
82-
Some(RollupProverConfig::Skip)
83-
}
84-
}
85-
} else {
86-
None
87-
};
88-
89-
let rollup = new_rollup(
90-
&GenesisPaths::from_dir(genesis_paths),
91-
&BasicKernelGenesisPaths {
92-
chain_state: kernel_genesis_paths.into(),
93-
},
94-
rollup_config_path,
95-
prover_config,
96-
)
97-
.await?;
98-
rollup.run().await
57+
// Initializing logging
58+
tracing_subscriber::registry()
59+
.with(fmt::layer())
60+
//.with(EnvFilter::from_default_env())
61+
.with(EnvFilter::from_str("info,hyper=info").unwrap())
62+
.init();
63+
64+
let args = Args::parse();
65+
let rollup_config_path = args.rollup_config_path.as_str();
66+
67+
let genesis_paths = args.genesis_paths.as_str();
68+
let kernel_genesis_paths = args.kernel_genesis_paths.as_str();
69+
70+
let prover_config = if option_env!("CI").is_some() {
71+
Some(RollupProverConfig::Execute)
72+
} else if let Some(prover) = option_env!("SOV_PROVER_MODE") {
73+
match prover {
74+
"simulate" => Some(RollupProverConfig::Simulate),
75+
"execute" => Some(RollupProverConfig::Execute),
76+
"prove" => Some(RollupProverConfig::Prove),
77+
_ => {
78+
tracing::warn!(
79+
prover_mode = prover,
80+
"Unknown sov prover mode, using 'Skip' default"
81+
);
82+
Some(RollupProverConfig::Skip)
83+
},
84+
}
85+
} else {
86+
None
87+
};
88+
89+
let rollup = new_rollup(
90+
&GenesisPaths::from_dir(genesis_paths),
91+
&BasicKernelGenesisPaths { chain_state: kernel_genesis_paths.into() },
92+
rollup_config_path,
93+
prover_config,
94+
)
95+
.await?;
96+
rollup.run().await
9997
}
10098

10199
#[cfg(feature = "mock_da")]
102100
async fn new_rollup(
103-
rt_genesis_paths: &GenesisPaths,
104-
kernel_genesis_paths: &BasicKernelGenesisPaths,
105-
rollup_config_path: &str,
106-
prover_config: Option<RollupProverConfig>,
101+
rt_genesis_paths: &GenesisPaths,
102+
kernel_genesis_paths: &BasicKernelGenesisPaths,
103+
rollup_config_path: &str,
104+
prover_config: Option<RollupProverConfig>,
107105
) -> Result<Rollup<MockRollup>, anyhow::Error> {
108-
info!("Reading rollup config from {rollup_config_path:?}");
109-
110-
let rollup_config: RollupConfig<MockDaConfig> =
111-
from_toml_path(rollup_config_path).context("Failed to read rollup configuration")?;
106+
info!("Reading rollup config from {rollup_config_path:?}");
112107

113-
let mock_rollup = MockRollup {};
114-
115-
let kernel_genesis = BasicKernelGenesisConfig {
116-
chain_state: serde_json::from_str(
117-
&std::fs::read_to_string(&kernel_genesis_paths.chain_state)
118-
.context("Failed to read chain state")?,
119-
)?,
120-
};
121-
122-
mock_rollup
123-
.create_new_rollup(
124-
rt_genesis_paths,
125-
kernel_genesis,
126-
rollup_config,
127-
prover_config,
128-
)
129-
.await
130-
}
131-
132-
#[cfg(feature = "celestia_da")]
133-
async fn new_rollup(
134-
rt_genesis_paths: &GenesisPaths,
135-
kernel_genesis_paths: &BasicKernelGenesisPaths,
136-
rollup_config_path: &str,
137-
prover_config: Option<RollupProverConfig>,
138-
) -> Result<Rollup<CelestiaRollup>, anyhow::Error> {
139-
info!(
140-
"Starting celestia rollup with config {}",
141-
rollup_config_path
142-
);
108+
let rollup_config: RollupConfig<MockDaConfig> =
109+
from_toml_path(rollup_config_path).context("Failed to read rollup configuration")?;
143110

144-
let rollup_config: RollupConfig<CelestiaConfig> =
145-
from_toml_path(rollup_config_path).context("Failed to read rollup configuration")?;
111+
let mock_rollup = MockRollup {};
146112

147-
let kernel_genesis = BasicKernelGenesisConfig {
148-
chain_state: serde_json::from_str(
149-
&std::fs::read_to_string(&kernel_genesis_paths.chain_state)
150-
.context("Failed to read chain state")?,
151-
)?,
152-
};
113+
let kernel_genesis = BasicKernelGenesisConfig {
114+
chain_state: serde_json::from_str(
115+
&std::fs::read_to_string(&kernel_genesis_paths.chain_state)
116+
.context("Failed to read chain state")?,
117+
)?,
118+
};
153119

154-
let mock_rollup = CelestiaRollup {};
155-
mock_rollup
156-
.create_new_rollup(
157-
rt_genesis_paths,
158-
kernel_genesis,
159-
rollup_config,
160-
prover_config,
161-
)
162-
.await
120+
mock_rollup
121+
.create_new_rollup(rt_genesis_paths, kernel_genesis, rollup_config, prover_config)
122+
.await
163123
}
124+
//
125+
// #[cfg(feature = "celestia_da")]
126+
// async fn new_rollup(
127+
// rt_genesis_paths: &GenesisPaths,
128+
// kernel_genesis_paths: &BasicKernelGenesisPaths,
129+
// rollup_config_path: &str,
130+
// prover_config: Option<RollupProverConfig>,
131+
// ) -> Result<Rollup<CelestiaRollup>, anyhow::Error> {
132+
// info!("Starting celestia rollup with config {}", rollup_config_path);
133+
//
134+
// let rollup_config: RollupConfig<CelestiaConfig> =
135+
// from_toml_path(rollup_config_path).context("Failed to read rollup configuration")?;
136+
//
137+
// let kernel_genesis = BasicKernelGenesisConfig {
138+
// chain_state: serde_json::from_str(
139+
// &std::fs::read_to_string(&kernel_genesis_paths.chain_state)
140+
// .context("Failed to read chain state")?,
141+
// )?,
142+
// };
143+
//
144+
// let mock_rollup = CelestiaRollup {};
145+
// mock_rollup
146+
// .create_new_rollup(rt_genesis_paths, kernel_genesis, rollup_config, prover_config)
147+
// .await
148+
// }

0 commit comments

Comments
 (0)