fix issue in guest rc.6

This commit is contained in:
Ho
2025-11-08 15:08:08 +09:00
parent 467d5f862d
commit 02c9360ca2
4 changed files with 25 additions and 38 deletions

8
Cargo.lock generated
View File

@@ -3960,7 +3960,7 @@ dependencies = [
[[package]]
name = "l2geth"
version = "4.5.47"
version = "4.6.3"
dependencies = [
"alloy",
"async-trait",
@@ -4089,7 +4089,7 @@ dependencies = [
[[package]]
name = "libzkp"
version = "4.5.47"
version = "4.6.3"
dependencies = [
"alloy-primitives",
"base64 0.22.1",
@@ -4111,7 +4111,7 @@ dependencies = [
[[package]]
name = "libzkp-c"
version = "4.5.47"
version = "4.6.3"
dependencies = [
"l2geth",
"libzkp",
@@ -6548,7 +6548,7 @@ dependencies = [
[[package]]
name = "prover"
version = "4.5.47"
version = "4.6.3"
dependencies = [
"async-trait",
"base64 0.22.1",

View File

@@ -14,7 +14,7 @@ edition = "2021"
homepage = "https://scroll.io"
readme = "README.md"
repository = "https://github.com/scroll-tech/scroll"
version = "4.5.47"
version = "4.6.3"
[workspace.dependencies]
scroll-zkvm-prover = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "360f364" }

View File

@@ -7,6 +7,7 @@ use scroll_zkvm_types::{
BatchHeaderValidium, BatchInfo, BatchWitness, Envelope, EnvelopeV6, EnvelopeV7, EnvelopeV8,
LegacyBatchWitness, ReferenceHeader, N_BLOB_BYTES,
},
chunk::ChunkInfo,
public_inputs::{ForkName, Version},
task::ProvingTask,
utils::{to_rkyv_bytes, RancorError},
@@ -234,15 +235,28 @@ impl BatchProvingTask {
}
};
// patch: ensure block_hash field is ZERO for scroll domain
let chunk_infos = self
.chunk_proofs
.iter()
.map(|p|
if version.domain == Domain::Scroll {
ChunkInfo {
prev_blockhash: B256::ZERO,
post_blockhash: B256::ZERO,
..p.metadata.chunk_info.clone()
}
} else {
p.metadata.chunk_info.clone()
}
).collect();
BatchWitness {
version: version.as_version_byte(),
fork_name: version.fork,
chunk_proofs: self.chunk_proofs.iter().map(|proof| proof.into()).collect(),
chunk_infos: self
.chunk_proofs
.iter()
.map(|p| p.metadata.chunk_info.clone())
.collect(),
chunk_infos,
blob_bytes: self.blob_bytes.clone(),
reference_header,
point_eval_witness,

View File

@@ -33,34 +33,7 @@ impl TryFromWithInterpreter<ChunkTask> for ChunkProvingTask {
) -> Result<Self> {
let mut block_witnesses = Vec::new();
for block_hash in value.block_hashes {
let mut witness =
interpreter.try_fetch_block_witness(block_hash, block_witnesses.last())?;
if witness.header.number == 1 {
use std::str::FromStr;
let hacked_state_root = match witness.chain_id {
// cloak-xen-sequencer.sepolia
5343513301 => Some(B256::from_str(
"0x0711f02d6f85b0597c4705298e01ee27159fdd8bd8bdeda670ae8b9073091246",
)?),
// cloak-etherfi-sequencer.sepolia
5343513302 => Some(B256::from_str(
"0x7b44ea23770dda8810801779eb6847d56be0399e35de7c56465ccf8b7578ddf6",
)?),
// cloak-shiga-sequencer.sepolia
5343513303 => Some(B256::from_str(
"0x05973227854ac82c22f164ed3d4510b7df516a0eecdfd9bed5f2446efc9994b9",
)?),
// cloak-xen-sequencer.mainnet
5343523301 => Some(B256::from_str(
"0x8da1aaf41660ddf7870ab5ff4f6a3ab4b2e652568d341ede87ada56aad5fb097",
)?),
_ => None,
};
if let Some(hacked_state_root) = hacked_state_root {
witness.prev_state_root = hacked_state_root;
tracing::warn!("hack genesis state root {:?} for cloak testnet to work around a wrong gensis configuration", witness.prev_state_root);
}
}
let witness = interpreter.try_fetch_block_witness(block_hash, block_witnesses.last())?;
block_witnesses.push(witness);
}