diff --git a/core/src/consensus.rs b/core/src/consensus.rs index d705fc601100b7..bece591da0218f 100644 --- a/core/src/consensus.rs +++ b/core/src/consensus.rs @@ -1157,10 +1157,6 @@ impl Tower { self.node_pubkey, bank.slot(), ); - assert_eq!( - self.vote_state.node_pubkey, self.node_pubkey, - "vote account's node_pubkey doesn't match", - ); } else { self.initialize_root(root); info!( diff --git a/core/src/replay_stage.rs b/core/src/replay_stage.rs index bd95cdca73b881..b52f453bf5839e 100644 --- a/core/src/replay_stage.rs +++ b/core/src/replay_stage.rs @@ -1454,6 +1454,14 @@ impl ReplayStage { } Ok(vote_state) => vote_state, }; + if vote_state.node_pubkey != node_keypair.pubkey() { + info!( + "Vote account node_pubkey mismatch: {} (expected: {}). Unable to vote", + vote_state.node_pubkey, + node_keypair.pubkey() + ); + return None; + } let authorized_voter_pubkey = if let Some(authorized_voter_pubkey) = vote_state.get_authorized_voter(bank.epoch()) { authorized_voter_pubkey