-
Notifications
You must be signed in to change notification settings - Fork 214
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sync: ensure mesh data are sync'ed by comparing states #3987
Labels
Comments
bors bot
pushed a commit
that referenced
this issue
Jan 25, 2023
## Motivation <!-- Please mention the issue fixed by this PR or detailed motivation --> Closes #3920 <!-- `Closes #XXXX, closes #XXXX, ...` links mentioned issues to this PR and automatically closes them when this it's merged --> ## Changes <!-- Please describe in detail the changes made --> syncer syncs MalfeasanceProof after ATXs are synced. it has to be synced after ATXs to avoid being spammed by unknown identities. it is synced as follows. - poll peers for all the malicious NodeIDs - if those NodeIDs exists, fetch the malfeasance proofs associated with the NodeID hash in batches this implementation is sub-optimal (see #3987) and is intended to be a genesis compromise
bors bot
pushed a commit
that referenced
this issue
Jan 25, 2023
## Motivation <!-- Please mention the issue fixed by this PR or detailed motivation --> Closes #3920 <!-- `Closes #XXXX, closes #XXXX, ...` links mentioned issues to this PR and automatically closes them when this it's merged --> ## Changes <!-- Please describe in detail the changes made --> syncer syncs MalfeasanceProof after ATXs are synced. it has to be synced after ATXs to avoid being spammed by unknown identities. it is synced as follows. - poll peers for all the malicious NodeIDs - if those NodeIDs exists, fetch the malfeasance proofs associated with the NodeID hash in batches this implementation is sub-optimal (see #3987) and is intended to be a genesis compromise
bors bot
pushed a commit
that referenced
this issue
Jan 26, 2023
## Motivation <!-- Please mention the issue fixed by this PR or detailed motivation --> Closes #3920 <!-- `Closes #XXXX, closes #XXXX, ...` links mentioned issues to this PR and automatically closes them when this it's merged --> ## Changes <!-- Please describe in detail the changes made --> syncer syncs MalfeasanceProof after ATXs are synced. it has to be synced after ATXs to avoid being spammed by unknown identities. it is synced as follows. - poll peers for all the malicious NodeIDs - if those NodeIDs exists, fetch the malfeasance proofs associated with the NodeID hash in batches this implementation is sub-optimal (see #3987) and is intended to be a genesis compromise
bors bot
pushed a commit
that referenced
this issue
Jan 26, 2023
## Motivation <!-- Please mention the issue fixed by this PR or detailed motivation --> Closes #3920 <!-- `Closes #XXXX, closes #XXXX, ...` links mentioned issues to this PR and automatically closes them when this it's merged --> ## Changes <!-- Please describe in detail the changes made --> syncer syncs MalfeasanceProof after ATXs are synced. it has to be synced after ATXs to avoid being spammed by unknown identities. it is synced as follows. - poll peers for all the malicious NodeIDs - if those NodeIDs exists, fetch the malfeasance proofs associated with the NodeID hash in batches this implementation is sub-optimal (see #3987) and is intended to be a genesis compromise
bors bot
pushed a commit
that referenced
this issue
Jan 27, 2023
## Motivation <!-- Please mention the issue fixed by this PR or detailed motivation --> Closes #3920 <!-- `Closes #XXXX, closes #XXXX, ...` links mentioned issues to this PR and automatically closes them when this it's merged --> ## Changes <!-- Please describe in detail the changes made --> syncer syncs MalfeasanceProof after ATXs are synced. it has to be synced after ATXs to avoid being spammed by unknown identities. it is synced as follows. - poll peers for all the malicious NodeIDs - if those NodeIDs exists, fetch the malfeasance proofs associated with the NodeID hash in batches this implementation is sub-optimal (see #3987) and is intended to be a genesis compromise
bors bot
pushed a commit
that referenced
this issue
Jan 27, 2023
## Motivation <!-- Please mention the issue fixed by this PR or detailed motivation --> Closes #3920 <!-- `Closes #XXXX, closes #XXXX, ...` links mentioned issues to this PR and automatically closes them when this it's merged --> ## Changes <!-- Please describe in detail the changes made --> syncer syncs MalfeasanceProof after ATXs are synced. it has to be synced after ATXs to avoid being spammed by unknown identities. it is synced as follows. - poll peers for all the malicious NodeIDs - if those NodeIDs exists, fetch the malfeasance proofs associated with the NodeID hash in batches this implementation is sub-optimal (see #3987) and is intended to be a genesis compromise
Regarding some sync approaches that might enable quick sync between pairs of peers (assuming symmetric difference between their sets of ATXs, malfeasance proofs etc. is small) and also ensuring good propagation of the state across the network:
|
4 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Description
currently when a node syncs data from peers, its approach is
the approach of syncing is to fetch all the ID hashes, if those ID hashes are not present in local database, fetch the data blobs referenced by the hash from peers in batches.
once the node is synced, it starts listening to gossiped data (ATXs and ballots). the sync module acts as fallback and sync data from the prior layer.
there are a few problems with this approach
with #3915, syncing MalfeasanceProofs suffer the same issues.
worse, as they correspond to identities and there are no clear boundary to limit the amount of MalfeasanceProofs to download from peers.
ideas
from @tal-m
from @dshulyak
Manual repair: Anti-entropy repair
The text was updated successfully, but these errors were encountered: