mirror of
https://github.com/0glabs/0g-storage-node.git
synced 2024-12-26 00:05:17 +00:00
Add configuration which can force sync from start_block_number (#183)
* queyr logs via LogQuery in wath loop
This commit is contained in:
parent
29fcc415a6
commit
43c2d5f788
@ -32,6 +32,8 @@ pub struct LogSyncConfig {
|
|||||||
pub remove_finalized_block_interval_minutes: u64,
|
pub remove_finalized_block_interval_minutes: u64,
|
||||||
// watch_loop (eth_getLogs) trigger interval
|
// watch_loop (eth_getLogs) trigger interval
|
||||||
pub watch_loop_wait_time_ms: u64,
|
pub watch_loop_wait_time_ms: u64,
|
||||||
|
// force to sync log from start block number
|
||||||
|
pub force_log_sync_from_start_block_number: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
@ -58,6 +60,7 @@ impl LogSyncConfig {
|
|||||||
default_finalized_block_count: u64,
|
default_finalized_block_count: u64,
|
||||||
remove_finalized_block_interval_minutes: u64,
|
remove_finalized_block_interval_minutes: u64,
|
||||||
watch_loop_wait_time_ms: u64,
|
watch_loop_wait_time_ms: u64,
|
||||||
|
force_log_sync_from_start_block_number: bool,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
Self {
|
Self {
|
||||||
rpc_endpoint_url,
|
rpc_endpoint_url,
|
||||||
@ -73,6 +76,7 @@ impl LogSyncConfig {
|
|||||||
default_finalized_block_count,
|
default_finalized_block_count,
|
||||||
remove_finalized_block_interval_minutes,
|
remove_finalized_block_interval_minutes,
|
||||||
watch_loop_wait_time_ms,
|
watch_loop_wait_time_ms,
|
||||||
|
force_log_sync_from_start_block_number,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ use anyhow::{anyhow, bail, Result};
|
|||||||
use ethereum_types::H256;
|
use ethereum_types::H256;
|
||||||
use ethers::{prelude::Middleware, types::BlockNumber};
|
use ethers::{prelude::Middleware, types::BlockNumber};
|
||||||
use futures::FutureExt;
|
use futures::FutureExt;
|
||||||
use jsonrpsee::tracing::{debug, error, trace, warn};
|
use jsonrpsee::tracing::{debug, error, warn};
|
||||||
use shared_types::{ChunkArray, Transaction};
|
use shared_types::{ChunkArray, Transaction};
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
use std::fmt::Debug;
|
use std::fmt::Debug;
|
||||||
@ -305,7 +305,7 @@ impl LogSyncManager {
|
|||||||
};
|
};
|
||||||
|
|
||||||
while let Some(data) = rx.recv().await {
|
while let Some(data) = rx.recv().await {
|
||||||
trace!("handle_data: data={:?}", data);
|
debug!("handle_data: data={:?}", data);
|
||||||
match data {
|
match data {
|
||||||
LogFetchProgress::SyncedBlock((
|
LogFetchProgress::SyncedBlock((
|
||||||
block_number,
|
block_number,
|
||||||
@ -472,6 +472,15 @@ impl LogSyncManager {
|
|||||||
async fn get_start_block_number_with_hash(
|
async fn get_start_block_number_with_hash(
|
||||||
log_sync_manager: &LogSyncManager,
|
log_sync_manager: &LogSyncManager,
|
||||||
) -> Result<(u64, H256), anyhow::Error> {
|
) -> Result<(u64, H256), anyhow::Error> {
|
||||||
|
if log_sync_manager
|
||||||
|
.config
|
||||||
|
.force_log_sync_from_start_block_number
|
||||||
|
{
|
||||||
|
let block_number = log_sync_manager.config.start_block_number;
|
||||||
|
let block_hash = log_sync_manager.get_block(block_number.into()).await?.1;
|
||||||
|
return Ok((block_number, block_hash));
|
||||||
|
}
|
||||||
|
|
||||||
if let Some(block_number) = log_sync_manager.store.get_log_latest_block_number()? {
|
if let Some(block_number) = log_sync_manager.store.get_log_latest_block_number()? {
|
||||||
if let Some(Some(val)) = log_sync_manager
|
if let Some(Some(val)) = log_sync_manager
|
||||||
.block_hash_cache
|
.block_hash_cache
|
||||||
|
@ -156,6 +156,7 @@ impl ZgsConfig {
|
|||||||
self.default_finalized_block_count,
|
self.default_finalized_block_count,
|
||||||
self.remove_finalized_block_interval_minutes,
|
self.remove_finalized_block_interval_minutes,
|
||||||
self.watch_loop_wait_time_ms,
|
self.watch_loop_wait_time_ms,
|
||||||
|
self.force_log_sync_from_start_block_number,
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@ build_config! {
|
|||||||
(blockchain_rpc_endpoint, (String), "http://127.0.0.1:8545".to_string())
|
(blockchain_rpc_endpoint, (String), "http://127.0.0.1:8545".to_string())
|
||||||
(log_contract_address, (String), "".to_string())
|
(log_contract_address, (String), "".to_string())
|
||||||
(log_sync_start_block_number, (u64), 0)
|
(log_sync_start_block_number, (u64), 0)
|
||||||
|
(force_log_sync_from_start_block_number, (bool), false)
|
||||||
(confirmation_block_count, (u64), 3)
|
(confirmation_block_count, (u64), 3)
|
||||||
(log_page_size, (u64), 999)
|
(log_page_size, (u64), 999)
|
||||||
(max_cache_data_size, (usize), 100 * 1024 * 1024) // 100 MB
|
(max_cache_data_size, (usize), 100 * 1024 * 1024) // 100 MB
|
||||||
|
Loading…
Reference in New Issue
Block a user