From 3efb64e469ad7f9316c4cfe5133bb828b132f14e Mon Sep 17 00:00:00 2001 From: musitdev Date: Mon, 16 Oct 2023 12:23:53 +0200 Subject: [PATCH] add some logs for stake history --- stake_aggregate/Cargo.toml | 12 ++++++---- stake_aggregate/src/leader_schedule.rs | 32 +++++++++++++++++++++++--- stake_aggregate/src/main.rs | 6 ++--- 3 files changed, 39 insertions(+), 11 deletions(-) diff --git a/stake_aggregate/Cargo.toml b/stake_aggregate/Cargo.toml index 185f1c0..5233629 100644 --- a/stake_aggregate/Cargo.toml +++ b/stake_aggregate/Cargo.toml @@ -43,15 +43,19 @@ jsonrpsee = { version = "0.20.0", features = ["macros", "server", "full"] } #jsonrpsee-types = "0.20.0" thiserror = "1.0.40" -yellowstone-grpc-client = { path = "../../yellowstone-grpc/yellowstone-grpc-client" } -yellowstone-grpc-proto = { path = "../../yellowstone-grpc/yellowstone-grpc-proto" } +#yellowstone-grpc-client = { path = "../../yellowstone-grpc/yellowstone-grpc-client" } +#yellowstone-grpc-proto = { path = "../../yellowstone-grpc/yellowstone-grpc-proto" } + + +#yellowstone-grpc-client = { git = "http://github.com/rpcpool/yellowstone-grpc", rev = "c89b89dfc5f03f11f45ac4a6e832386a1d94cb67" } +#yellowstone-grpc-proto = { git = "http://github.com/rpcpool/yellowstone-grpc", rev = "c89b89dfc5f03f11f45ac4a6e832386a1d94cb67" } #yellowstone-grpc-client = "1.8.0+solana.1.16.1" #yellowstone-grpc-proto = "1.8.0+solana.1.16.1" -#yellowstone-grpc-client = "1.11.0+solana.1.16.14" -#yellowstone-grpc-proto = "1.10.0+solana.1.16.14" +yellowstone-grpc-client = "1.11.0+solana.1.16.14" +yellowstone-grpc-proto = "1.10.0+solana.1.16.14" solana-sdk = "1.16.14" solana-client = "1.16.14" diff --git a/stake_aggregate/src/leader_schedule.rs b/stake_aggregate/src/leader_schedule.rs index 97a0ea7..a6e796b 100644 --- a/stake_aggregate/src/leader_schedule.rs +++ b/stake_aggregate/src/leader_schedule.rs @@ -150,7 +150,6 @@ InitLeaderscedule MergeStore(stakes, votes, schedule) */ pub fn run_leader_schedule_events( - rpc_url: String, event: LeaderScheduleEvent, bootstrap_tasks: &mut FuturesUnordered>, stakestore: &mut StakeStore, @@ -163,7 +162,7 @@ pub fn run_leader_schedule_events( None } LeaderScheduleResult::Event(event) => { - run_leader_schedule_events(rpc_url, event, bootstrap_tasks, stakestore, votestore) + run_leader_schedule_events(event, bootstrap_tasks, stakestore, votestore) } LeaderScheduleResult::End(schedule) => Some(schedule), } @@ -344,10 +343,37 @@ fn calculate_epoch_stakes( ) }); match stake_history { - Some(ref mut stake_history) => stake_history.add(current_epoch, stake_history_entry), + Some(ref mut stake_history) => { + log::info!( + "Stake_history add epoch{current_epoch} stake history:{stake_history_entry:?}" + ); + stake_history.add(current_epoch, stake_history_entry) + } None => log::warn!("Vote stake calculus without Stake History"), }; + //get current stake history + match crate::bootstrap::get_stakehistory_account(crate::RPC_URL.to_string()) + .ok() + .and_then(|rpc_history_account| { + crate::stakestore::read_historystake_from_account(rpc_history_account) + }) { + Some(rpc_history) => { + log::info!( + "Stake_history new epoch:{current_epoch} C:{:?} RPC:{:?}", + stake_history.as_ref().map(|h| h.get(current_epoch)), + rpc_history.get(current_epoch) + ); + log::info!( + "Stake_history last epoch:{} C:{:?} RPC:{:?}", + current_epoch - 1, + stake_history.as_ref().map(|h| h.get(current_epoch - 1)), + rpc_history.get(current_epoch - 1) + ); + } + None => log::error!("can't get rpc history from RPC"), + } + //calculate schedule stakes. let delegated_stakes: HashMap = stake_map diff --git a/stake_aggregate/src/main.rs b/stake_aggregate/src/main.rs index 50e2423..5d75c00 100644 --- a/stake_aggregate/src/main.rs +++ b/stake_aggregate/src/main.rs @@ -195,7 +195,7 @@ async fn run_loop(mut client: GeyserGrpcClient) -> anyhow::Re owner: vec![ solana_sdk::stake::program::ID.to_string(), solana_sdk::vote::program::ID.to_string(), - solana_sdk::sysvar::stake_history::ID.to_string(), + // solana_sdk::sysvar::stake_history::ID.to_string(), // solana_sdk::system_program::ID.to_string(), ], filters: vec![], @@ -280,7 +280,7 @@ async fn run_loop(mut client: GeyserGrpcClient) -> anyhow::Re if let Err(err) = crate::leader_schedule::save_schedule_on_file("stakes", ¤t_stake) { log::error!("Error during current stakes saving:{err}"); } - log::info!("RPC save_stakes END"); + log::warn!("RPC save_stakes END"); } }); @@ -329,7 +329,6 @@ async fn run_loop(mut client: GeyserGrpcClient) -> anyhow::Re //Manage RPC call result execution Some(Ok(event)) = spawned_leader_schedule_task.next() => { let new_leader_schedule = crate::leader_schedule::run_leader_schedule_events( - RPC_URL.to_string(), event, &mut spawned_leader_schedule_task, &mut stakestore, @@ -401,7 +400,6 @@ async fn run_loop(mut client: GeyserGrpcClient) -> anyhow::Re if bootstrap_data.done { if let Some(init_event) = schedule_event { crate::leader_schedule::run_leader_schedule_events( - RPC_URL.to_string(), init_event, &mut spawned_leader_schedule_task, &mut stakestore,