Skip to content

Commit 4eee563

Browse files
committed
feat: disable history validation
1 parent fef797f commit 4eee563

File tree

1 file changed

+94
-102
lines changed

1 file changed

+94
-102
lines changed

crates/subnetworks/history/src/validation.rs

Lines changed: 94 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,6 @@
11
use std::sync::Arc;
22

3-
use alloy::primitives::B256;
4-
use anyhow::{anyhow, ensure};
5-
use ethportal_api::{
6-
types::execution::{
7-
block_body::BlockBody, header::Header, header_with_proof::HeaderWithProof,
8-
receipts::Receipts,
9-
},
10-
utils::bytes::hex_encode,
11-
HistoryContentKey,
12-
};
13-
use ssz::Decode;
3+
use ethportal_api::HistoryContentKey;
144
use tokio::sync::RwLock;
155
use trin_validation::{
166
oracle::HeaderOracle,
@@ -24,101 +14,103 @@ pub struct ChainHistoryValidator {
2414
impl Validator<HistoryContentKey> for ChainHistoryValidator {
2515
async fn validate_content(
2616
&self,
27-
content_key: &HistoryContentKey,
28-
content: &[u8],
17+
_content_key: &HistoryContentKey,
18+
_content: &[u8],
2919
) -> anyhow::Result<ValidationResult<HistoryContentKey>> {
30-
match content_key {
31-
HistoryContentKey::BlockHeaderByHash(key) => {
32-
let header_with_proof =
33-
HeaderWithProof::from_ssz_bytes(content).map_err(|err| {
34-
anyhow!("Header by hash content has invalid encoding: {err:?}")
35-
})?;
36-
let header_hash = header_with_proof.header.hash();
37-
ensure!(
38-
header_hash == B256::from(key.block_hash),
39-
"Content validation failed: Invalid header hash. Found: {header_hash:?} - Expected: {:?}",
40-
hex_encode(header_hash)
41-
);
42-
self.header_oracle
43-
.read()
44-
.await
45-
.header_validator
46-
.validate_header_with_proof(&header_with_proof)?;
47-
48-
Ok(ValidationResult::new(true))
49-
}
50-
HistoryContentKey::BlockHeaderByNumber(key) => {
51-
let header_with_proof =
52-
HeaderWithProof::from_ssz_bytes(content).map_err(|err| {
53-
anyhow!("Header by number content has invalid encoding: {err:?}")
54-
})?;
55-
let header_number = header_with_proof.header.number;
56-
ensure!(
57-
header_number == key.block_number,
58-
"Content validation failed: Invalid header number. Found: {header_number} - Expected: {}",
59-
key.block_number
60-
);
61-
self.header_oracle
62-
.read()
63-
.await
64-
.header_validator
65-
.validate_header_with_proof(&header_with_proof)?;
66-
67-
Ok(ValidationResult::new(true))
68-
}
69-
HistoryContentKey::BlockBody(key) => {
70-
let block_body = BlockBody::from_ssz_bytes(content)
71-
.map_err(|msg| anyhow!("Block Body content has invalid encoding: {:?}", msg))?;
72-
let trusted_header: Header = self
73-
.header_oracle
74-
.read()
75-
.await
76-
.recursive_find_header_by_hash_with_proof(B256::from(key.block_hash))
77-
.await?
78-
.header;
79-
let actual_uncles_root = block_body.uncles_root();
80-
if actual_uncles_root != trusted_header.uncles_hash {
81-
return Err(anyhow!(
82-
"Content validation failed: Invalid uncles root. Found: {:?} - Expected: {:?}",
83-
actual_uncles_root,
84-
trusted_header.uncles_hash
85-
));
86-
}
87-
let actual_txs_root = block_body.transactions_root()?;
88-
if actual_txs_root != trusted_header.transactions_root {
89-
return Err(anyhow!(
90-
"Content validation failed: Invalid transactions root. Found: {:?} - Expected: {:?}",
91-
actual_txs_root,
92-
trusted_header.transactions_root
93-
));
94-
}
95-
Ok(ValidationResult::new(true))
96-
}
97-
HistoryContentKey::BlockReceipts(key) => {
98-
let receipts = Receipts::from_ssz_bytes(content).map_err(|msg| {
99-
anyhow!("Block Receipts content has invalid encoding: {:?}", msg)
100-
})?;
101-
let trusted_header: Header = self
102-
.header_oracle
103-
.read()
104-
.await
105-
.recursive_find_header_by_hash_with_proof(B256::from(key.block_hash))
106-
.await?
107-
.header;
108-
let actual_receipts_root = receipts.root()?;
109-
if actual_receipts_root != trusted_header.receipts_root {
110-
return Err(anyhow!(
111-
"Content validation failed: Invalid receipts root. Found: {:?} - Expected: {:?}",
112-
actual_receipts_root,
113-
trusted_header.receipts_root
114-
));
115-
}
116-
Ok(ValidationResult::new(true))
117-
}
118-
}
20+
// match content_key {
21+
// HistoryContentKey::BlockHeaderByHash(key) => {
22+
// let header_with_proof =
23+
// HeaderWithProof::from_ssz_bytes(content).map_err(|err| {
24+
// anyhow!("Header by hash content has invalid encoding: {err:?}")
25+
// })?;
26+
// let header_hash = header_with_proof.header.hash();
27+
// ensure!(
28+
// header_hash == B256::from(key.block_hash),
29+
// "Content validation failed: Invalid header hash. Found: {header_hash:?} -
30+
// Expected: {:?}", hex_encode(header_hash)
31+
// );
32+
// self.header_oracle
33+
// .read()
34+
// .await
35+
// .header_validator
36+
// .validate_header_with_proof(&header_with_proof)?;
37+
//
38+
// Ok(ValidationResult::new(true))
39+
// }
40+
// HistoryContentKey::BlockHeaderByNumber(key) => {
41+
// let header_with_proof =
42+
// HeaderWithProof::from_ssz_bytes(content).map_err(|err| {
43+
// anyhow!("Header by number content has invalid encoding: {err:?}")
44+
// })?;
45+
// let header_number = header_with_proof.header.number;
46+
// ensure!(
47+
// header_number == key.block_number,
48+
// "Content validation failed: Invalid header number. Found: {header_number} -
49+
// Expected: {}", key.block_number
50+
// );
51+
// self.header_oracle
52+
// .read()
53+
// .await
54+
// .header_validator
55+
// .validate_header_with_proof(&header_with_proof)?;
56+
//
57+
// Ok(ValidationResult::new(true))
58+
// }
59+
// HistoryContentKey::BlockBody(key) => {
60+
// let block_body = BlockBody::from_ssz_bytes(content)
61+
// .map_err(|msg| anyhow!("Block Body content has invalid encoding: {:?}",
62+
// msg))?; let trusted_header: Header = self
63+
// .header_oracle
64+
// .read()
65+
// .await
66+
// .recursive_find_header_by_hash_with_proof(B256::from(key.block_hash))
67+
// .await?
68+
// .header;
69+
// let actual_uncles_root = block_body.uncles_root();
70+
// if actual_uncles_root != trusted_header.uncles_hash {
71+
// return Err(anyhow!(
72+
// "Content validation failed: Invalid uncles root. Found: {:?} - Expected:
73+
// {:?}", actual_uncles_root,
74+
// trusted_header.uncles_hash
75+
// ));
76+
// }
77+
// let actual_txs_root = block_body.transactions_root()?;
78+
// if actual_txs_root != trusted_header.transactions_root {
79+
// return Err(anyhow!(
80+
// "Content validation failed: Invalid transactions root. Found: {:?} -
81+
// Expected: {:?}", actual_txs_root,
82+
// trusted_header.transactions_root
83+
// ));
84+
// }
85+
// Ok(ValidationResult::new(true))
86+
// }
87+
// HistoryContentKey::BlockReceipts(key) => {
88+
// let receipts = Receipts::from_ssz_bytes(content).map_err(|msg| {
89+
// anyhow!("Block Receipts content has invalid encoding: {:?}", msg)
90+
// })?;
91+
// let trusted_header: Header = self
92+
// .header_oracle
93+
// .read()
94+
// .await
95+
// .recursive_find_header_by_hash_with_proof(B256::from(key.block_hash))
96+
// .await?
97+
// .header;
98+
// let actual_receipts_root = receipts.root()?;
99+
// if actual_receipts_root != trusted_header.receipts_root {
100+
// return Err(anyhow!(
101+
// "Content validation failed: Invalid receipts root. Found: {:?} -
102+
// Expected: {:?}", actual_receipts_root,
103+
// trusted_header.receipts_root
104+
// ));
105+
// }
106+
// Ok(ValidationResult::new(true))
107+
// }
108+
// }
109+
Ok(ValidationResult::new(true))
119110
}
120111
}
121112

113+
#[cfg(any())]
122114
#[cfg(test)]
123115
#[allow(clippy::unwrap_used)]
124116
mod tests {

0 commit comments

Comments
 (0)