enforce block signer == author field in PoA (#5808)
This commit is contained in:
committed by
Nikolay Volf
parent
75ac263961
commit
edea41d35e
@@ -69,6 +69,10 @@ fn verify_external(header: &Header, validators: &ValidatorSet) -> Result<(), Err
|
||||
let sig = UntrustedRlp::new(&header.seal()[0]).as_val::<H520>()?;
|
||||
let signer = public_to_address(&recover(&sig.into(), &header.bare_hash())?);
|
||||
|
||||
if *header.author() != signer {
|
||||
return Err(EngineError::NotAuthorized(*header.author()).into())
|
||||
}
|
||||
|
||||
match validators.contains(header.parent_hash(), &signer) {
|
||||
false => Err(BlockError::InvalidSeal.into()),
|
||||
true => Ok(())
|
||||
|
||||
Reference in New Issue
Block a user