Skip to content

Conversation

heifner
Copy link
Member

@heifner heifner commented Aug 12, 2024

  • Updates integration tests to use producer names for finalizer descriptions to match what core system contract does and what producer_plugin now expects.

  • Updated vote signal to include the active finalizer authority and/or the pending finalizer authority

    • This is not strictly necessary as the producer_plugin could track the BLS public keys of the active and pending finalizer policies and see if the those vote BLS public keys match any of the producer account names of the finalizers with the same name <=> description. I thought it was nice to signal the finalizer authority. For one thing, we can now log the finalizer description of the vote instead of just the BLS public key. However, if we think the overhead of this is too much I could pull it out and go with the producer plugin doing all the heavy lifting.
  • New config option production-pause-vote-timeout-ms

  --production-pause-vote-timeout-ms arg (=6000)
                                        Received vote timeout. If no vote from
                                        producer-name finalizers or other
                                        finalizers then pauses block
                                        production. 0 disables.

Resolves #495

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

Note:start
group: STABILITY
category: INTERNALS
summary: Pause block production when not receiving votes. This behavior is intended as a medium-term restriction in nodeos to help block producers be aware of common misconfigurations of their nodes that would hinder vote propagation and advancement of finality.
Note:end

@heifner heifner marked this pull request as ready for review August 13, 2024 01:57
@heifner heifner requested review from linh2931 and greg7mdp August 13, 2024 01:57
Copy link
Member

@linh2931 linh2931 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not done yet. Just post comments so far.

Comment on lines +770 to +773
return (_is_producer_active_finalizer &&
_accepted_block_time - last_producer_vote_received > _production_pause_vote_timeout)
|| (_other_active_finalizers &&
_accepted_block_time - last_other_vote_received > _production_pause_vote_timeout);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not an issue, but I liked the previous version better. Here we can have negative time values and I think it is less clear.

@heifner heifner merged commit 22d9892 into main Aug 14, 2024
36 checks passed
@heifner heifner deleted the GH-495-pause-production branch August 14, 2024 12:43
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.

Pause production when not receiving votes
4 participants