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
Og might drain the Or with invalid Block Digests, so the Or would again and again perform sync. with other observers. To prevent this malicious behavior - only one sync. operation should be performed by the Or, and, in case if the last block of the Or was exactly the same as the majority has -- then Og should be marked as malicious node for current generation round, and no any sync. attempts must be performed.
Roles
Og- observer that generates the block;Or- observer that receives block candidates digests;Description
At the moment,
Orperforms additional blockchain sync. in case if it receivesBlockHashnotification from theOg, and it's hash does not equal to the last block of theOr's chain.OgbroadcastsBlockHashnotification each time, when new block has been generated.This kind of sync is needed for the cases, when
Orhas missedSignaturescollection from theOg, and does not committed the last block, when the rest observers has been comited it. In this case, this sync. makes it possible for theOrto quickly download the last block form someone from the network and attach it to the chain.Optimization
This synchronization might be performed when
OrreceivesBlock Digestfrom theOgand received digest's hash does not passes validation (does not corresponds to the last block hash). In this caseOrshould 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
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.