Skip to content

Commit 131eaa3

Browse files
committed
feat: galileo-v2
1 parent 56c9518 commit 131eaa3

File tree

14 files changed

+122
-53
lines changed

14 files changed

+122
-53
lines changed

Cargo.lock

Lines changed: 42 additions & 45 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,11 @@ openvm-transpiler = { git = "https://github.com/openvm-org/openvm.git", tag = "v
7070
# more openvm related libs
7171
openvm-stark-sdk = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.2.1" }
7272

73-
sbv-core = { git = "https://github.com/scroll-tech/stateless-block-verifier", tag = "scroll-v91" }
74-
sbv-helpers = { git = "https://github.com/scroll-tech/stateless-block-verifier", tag = "scroll-v91", features = ["dev"] }
75-
sbv-primitives = { git = "https://github.com/scroll-tech/stateless-block-verifier", tag = "scroll-v91" }
76-
sbv-utils = { git = "https://github.com/scroll-tech/stateless-block-verifier", tag = "scroll-v91" }
77-
sbv-trie = { git = "https://github.com/scroll-tech/stateless-block-verifier", tag = "scroll-v91" }
73+
sbv-core = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "feat/galileo-v2" }
74+
sbv-helpers = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "feat/galileo-v2", features = ["dev"] }
75+
sbv-primitives = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "feat/galileo-v2" }
76+
sbv-utils = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "feat/galileo-v2" }
77+
sbv-trie = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "feat/galileo-v2" }
7878

7979
alloy-consensus = "1.0"
8080
alloy-provider = "1.0"

crates/integration/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ pub fn testing_hardfork() -> ForkName {
4949

5050
/// Test settings (version).
5151
pub fn testing_version() -> Version {
52-
Version::galileo()
52+
Version::galileo_v2()
5353
}
5454

5555
pub fn testing_version_validium() -> Version {

crates/integration/src/testers/chunk.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,8 @@ pub fn preset_chunk() -> ChunkTaskGenerator {
220220
ForkName::EuclidV2 => (Version::euclid_v2(), 1u64..=4u64),
221221
ForkName::Feynman => (Version::feynman(), 16525000u64..=16525003u64),
222222
ForkName::Galileo => (Version::galileo(), 20239156..=20239235),
223+
// TODO(rohit): update after adding testdata.
224+
ForkName::GalileoV2 => (Version::galileo_v2(), 20239156..=20239235),
223225
};
224226

225227
ChunkTaskGenerator {
@@ -289,6 +291,15 @@ pub fn preset_chunk_multiple() -> Vec<ChunkTaskGenerator> {
289291
],
290292
Version::galileo(),
291293
),
294+
ForkName::GalileoV2 => (
295+
// TODO(rohit): update after adding testdata.
296+
vec![
297+
20239220..=20239220,
298+
20239221..=20239221,
299+
20239222..=20239222,
300+
],
301+
Version::galileo_v2(),
302+
),
292303
};
293304
create_canonical_tasks(version, block_range.into_iter())
294305
.expect("must success for preset collections")

crates/integration/src/utils/mod.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ pub fn build_batch_witnesses(
298298
blob_data_proof: point_evaluations.map(|u| B256::new(u.to_be_bytes())),
299299
})
300300
}
301-
ForkName::EuclidV2 | ForkName::Feynman | ForkName::Galileo => {
301+
ForkName::EuclidV2 | ForkName::Feynman | ForkName::Galileo | ForkName::GalileoV2 => {
302302
use scroll_zkvm_types::batch::BatchHeaderV7;
303303
ReferenceHeader::V7_V8_V9(BatchHeaderV7 {
304304
version: last_header.version,
@@ -431,6 +431,11 @@ fn test_build_and_parse_batch_task() -> eyre::Result<()> {
431431
block_range: (20239156..=20239192).collect(),
432432
..Default::default()
433433
},
434+
// TODO(rohit): update after adding testdata.
435+
ForkName::GalileoV2 => ChunkTaskGenerator {
436+
block_range: (20239156..=20239192).collect(),
437+
..Default::default()
438+
},
434439
}
435440
.get_or_build_witness()?;
436441

crates/integration/tests/batch_circuit.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,15 @@ fn verify_batch_hash_invariant() -> eyre::Result<()> {
116116
20239176..=20239192,
117117
],
118118
),
119+
ForkName::GalileoV2 => (
120+
Version::galileo_v2(),
121+
// TODO(rohit): update after adding testdata.
122+
vec![
123+
20239156..=20239162,
124+
20239163..=20239175,
125+
20239176..=20239192,
126+
],
127+
),
119128
};
120129
let outcome_2 = create_canonical_tasks(version, block_range.into_iter())?;
121130

crates/integration/tests/bundle_circuit.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,8 @@ fn e2e_inner(
160160
ForkName::EuclidV2 => "2028510c403837c6ed77660fd92814ba61d7b746e7268cc8dfc14d163d45e6bd",
161161
ForkName::Feynman => "80523a61b2b94b2922638ec90edd084b1022798e1e5539c3a079d2b0736e4f32",
162162
ForkName::Galileo => "86290e8c329dd2ec430df4a8b2ae8396b3996b3e814afff24b7cedeb26387087",
163+
// TODO(rohit): update after adding testdata.
164+
ForkName::GalileoV2 => "86290e8c329dd2ec430df4a8b2ae8396b3996b3e814afff24b7cedeb26387087",
163165
};
164166
let expected_pi_hash = metadata.pi_hash_by_version(version);
165167
// sanity check for pi of bundle hash, update the expected hash if block witness changed

crates/types/base/src/fork_name.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ pub enum ForkName {
2323
EuclidV2,
2424
Feynman,
2525
Galileo,
26+
GalileoV2,
2627
}
2728

2829
impl fmt::Display for ForkName {
@@ -32,6 +33,7 @@ impl fmt::Display for ForkName {
3233
ForkName::EuclidV2 => "euclidv2",
3334
ForkName::Feynman => "feynman",
3435
ForkName::Galileo => "galileo",
36+
ForkName::GalileoV2 => "galileov2",
3537
};
3638
write!(f, "{}", s)
3739
}
@@ -45,6 +47,7 @@ impl ForkName {
4547
ForkName::EuclidV2 => "euclidv2",
4648
ForkName::Feynman => "feynman",
4749
ForkName::Galileo => "galileo",
50+
ForkName::GalileoV2 => "galileov2",
4851
}
4952
}
5053
}
@@ -57,6 +60,7 @@ impl From<Option<&str>> for ForkName {
5760
Some("euclidv2") => ForkName::EuclidV2,
5861
Some("feynman") => ForkName::Feynman,
5962
Some("galileo") => ForkName::Galileo,
63+
Some("galileov2") => ForkName::GalileoV2,
6064
Some(s) => unreachable!("hardfork not accepted: {s}"),
6165
}
6266
}
@@ -69,6 +73,7 @@ impl From<&str> for ForkName {
6973
"euclidv2" => ForkName::EuclidV2,
7074
"feynman" => ForkName::Feynman,
7175
"galileo" => ForkName::Galileo,
76+
"galileov2" => ForkName::GalileoV2,
7277
s => unreachable!("hardfork not accepted: {s}"),
7378
}
7479
}

crates/types/base/src/public_inputs/batch.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,13 @@ impl BatchInfo {
137137
)
138138
}
139139

140+
/// Public input hash for a batch (galileo or da-codec@v9) is defined as
141+
///
142+
/// Same as galileo.
143+
pub fn pi_hash_galileo_v2(&self, version: Version) -> B256 {
144+
self.pi_hash_galileo(version)
145+
}
146+
140147
/// Public input hash for a L3 validium @ v1.
141148
///
142149
/// keccak(
@@ -179,6 +186,7 @@ impl MultiVersionPublicInputs for BatchInfo {
179186
(Domain::Scroll, STFVersion::V7) => self.pi_hash_euclidv2(),
180187
(Domain::Scroll, STFVersion::V8) => self.pi_hash_feynman(),
181188
(Domain::Scroll, STFVersion::V9) => self.pi_hash_galileo(version),
189+
(Domain::Scroll, STFVersion::V10) => self.pi_hash_galileo_v2(version),
182190
(Domain::Validium, STFVersion::V1) => self.pi_hash_validium(version),
183191
(domain, stf_version) => {
184192
unreachable!("unsupported version=({domain:?}, {stf_version:?})")

crates/types/base/src/public_inputs/bundle.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@ impl BundleInfo {
102102
self.pi_euclidv2()
103103
}
104104

105+
pub fn pi_galileo_v2(&self) -> Vec<u8> {
106+
self.pi_euclidv2()
107+
}
108+
105109
pub fn pi_hash_versioned(&self, version: Version, pi: &[u8]) -> B256 {
106110
keccak256(
107111
std::iter::empty()
@@ -137,6 +141,9 @@ impl MultiVersionPublicInputs for BundleInfo {
137141
(Domain::Scroll, STFVersion::V9) => {
138142
self.pi_hash_versioned(version, self.pi_galileo().as_slice())
139143
}
144+
(Domain::Scroll, STFVersion::V10) => {
145+
self.pi_hash_versioned(version, self.pi_galileo_v2().as_slice())
146+
}
140147
(Domain::Validium, STFVersion::V1) => {
141148
self.pi_hash_versioned(version, self.pi_validium_v1().as_slice())
142149
}

0 commit comments

Comments
 (0)