Skip to content
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

Update finalizer safety info file based on received QC #247

Merged
merged 6 commits into from
Jun 11, 2024

Conversation

heifner
Copy link
Member

@heifner heifner commented Jun 6, 2024

If a node deletes their finalizer safety information file, they may lose critical safety information such as the block they should be locked on. But in some cases, this information can be recovered based on the evidence in the QCs attached to blocks that the node receives from peers.

When processing a QC in a block, node checks to see if any of the finalizer keys it manages are represented in the QC as a strong vote. If that block is more recent than the current lock in the finalizer safety information file for that finalizer key, then update the lock.

Resolves #135

@heifner heifner added the OCI Work exclusive to OCI team label Jun 6, 2024
@ericpassmore
Copy link
Contributor

Note:start
group: STABILITY
category: INTERNALS
summary: Mechanism to update node in the event finalizer safety data is removed.
Note:end

@greg7mdp
Copy link
Contributor

greg7mdp commented Jun 7, 2024

Some more thoughts:

  1. I think we should consider updating the safety info of a finalizer if and only if a safety file was not present for this finalizer when nodeos launched.
  2. I think that, once a finalizer has voted strong and updated the lock, we should stop considering the received votes for a potential update of this finalizer.

@arhag
Copy link
Member

arhag commented Jun 7, 2024

@greg7mdp:

  1. I think we should consider updating the safety info of a finalizer if and only if a safety file was not present for this finalizer when nodeos launched.
  2. I think that, once a finalizer has voted strong and updated the lock, we should stop considering the received votes for a potential update of this finalizer.

I don't think we should do 1. We still want to handle the case where nodeos is using an old finalizer safety information file.

I do think we should do 2, after we have implemented the changes of #259.

@heifner heifner marked this pull request as draft June 7, 2024 19:28
@heifner heifner changed the base branch from main to GH-259-avoid-voting June 10, 2024 17:34
@heifner heifner marked this pull request as ready for review June 10, 2024 17:59
Base automatically changed from GH-259-avoid-voting to main June 11, 2024 12:10
@heifner heifner requested review from greg7mdp and linh2931 June 11, 2024 12:11
@heifner heifner merged commit b26ae06 into main Jun 11, 2024
36 checks passed
@heifner heifner deleted the GH-135-update-fsi branch June 11, 2024 15:38
@ericpassmore
Copy link
Contributor

Note:start
group: STABILITY
category: INTERNALS
summary: Extend scenarios where a deleted safety data file may be recovered.
Note:end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OCI Work exclusive to OCI team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update finalizer safety information file based on vote evidence from received blocks
5 participants