-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Roles
Og - observer that generates the block;
Or - observer that receives block candidates digests;
Description
At the moment, Or performs additional blockchain sync. in case if it receives BlockHash notification from the Og, and it's hash does not equal to the last block of the Or's chain. Og broadcasts BlockHash notification each time, when new block has been generated.
This kind of sync is needed for the cases, when Or has missed Signatures collection from the Og, and does not committed the last block, when the rest observers has been comited it. In this case, this sync. makes it possible for the Or to quickly download the last block form someone from the network and attach it to the chain.
Optimization
This synchronization might be performed when Or receives Block Digest from the Og and received digest's hash does not passes validation (does not corresponds to the last block hash). In this case Or should try to check validity of it's chain with the help of majority (perform synchronization).
This way makes it possible to simplify validation flow logic and optimize traffic usage.
Vulnerabilities
- Malicious
Ogmight drain theOrwith invalidBlock Digests, so theOrwould again and again perform sync. with other observers. To prevent this malicious behavior - only one sync. operation should be performed by theOr, and, in case if the last block of theOrwas exactly the same as the majority has -- thenOgshould be marked as malicious node for current generation round, and no any sync. attempts must be performed.