You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As part of #792 the ec chain (or Vote Value) may arrive in a different time than the message that references it. We will need to buffer such messages until the chain they reference is known. But we want to avoid buffering invalid messages for security reasons. For example, we can validate:
the message signature, because signature uses Merkle root of the chain, and the same key is used as the reference (i.e. provided as part of the partial message).
basic GPBFT validation rules that are independent of chain, e.g. validity of phase relative to round, etc.
relevance of the message relative to current progress (See ErrValidationNotRelevant, ErrValidationTooOld)
To make this possible, the current validation logic needs to be refactored to allow partial validation. We need to dig out the validation rules and apply them in a more pluggable way. An alternative is to duplicate the validation logic and harden it by tests to avoid divergence. The latter approach is probably faster but is a tech debt.
The text was updated successfully, but these errors were encountered:
As part of #792 the ec chain (or Vote Value) may arrive in a different time than the message that references it. We will need to buffer such messages until the chain they reference is known. But we want to avoid buffering invalid messages for security reasons. For example, we can validate:
ErrValidationNotRelevant
,ErrValidationTooOld
)To make this possible, the current validation logic needs to be refactored to allow partial validation. We need to dig out the validation rules and apply them in a more pluggable way. An alternative is to duplicate the validation logic and harden it by tests to avoid divergence. The latter approach is probably faster but is a tech debt.
The text was updated successfully, but these errors were encountered: