mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-09 04:39:24 +00:00
Get the result of block importing
This commit is contained in:
@@ -180,7 +180,7 @@ pub trait Network: Send + Sync {
|
||||
async fn slash(&mut self, validator: Self::ValidatorId);
|
||||
|
||||
/// Validate a block.
|
||||
fn validate(&mut self, block: &Self::Block) -> Result<(), BlockError>;
|
||||
async fn validate(&mut self, block: &Self::Block) -> Result<(), BlockError>;
|
||||
/// Add a block, returning the proposal for the next one. It's possible a block, which was never
|
||||
/// validated or even failed validation, may be passed here if a supermajority of validators did
|
||||
/// consider it valid and created a commit for it. This deviates from the paper which will have a
|
||||
|
||||
@@ -436,7 +436,7 @@ impl<N: Network + 'static> TendermintMachine<N> {
|
||||
// 22-33
|
||||
if self.step == Step::Propose {
|
||||
// Delay error handling (triggering a slash) until after we vote.
|
||||
let (valid, err) = match self.network.write().await.validate(block) {
|
||||
let (valid, err) = match self.network.write().await.validate(block).await {
|
||||
Ok(_) => (true, Ok(None)),
|
||||
Err(BlockError::Temporal) => (false, Ok(None)),
|
||||
Err(BlockError::Fatal) => (false, Err(TendermintError::Malicious(proposer))),
|
||||
@@ -478,7 +478,7 @@ impl<N: Network + 'static> TendermintMachine<N> {
|
||||
// being set, or only being set historically, means this has yet to be run
|
||||
|
||||
if self.log.has_consensus(self.round, Data::Prevote(Some(block.id()))) {
|
||||
match self.network.write().await.validate(block) {
|
||||
match self.network.write().await.validate(block).await {
|
||||
Ok(_) => (),
|
||||
Err(BlockError::Temporal) => (),
|
||||
Err(BlockError::Fatal) => Err(TendermintError::Malicious(proposer))?,
|
||||
|
||||
@@ -109,7 +109,7 @@ impl Network for TestNetwork {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn validate(&mut self, block: &TestBlock) -> Result<(), BlockError> {
|
||||
async fn validate(&mut self, block: &TestBlock) -> Result<(), BlockError> {
|
||||
block.valid
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user