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

Report wallet heartbeat failure #3796

Closed
2 tasks done
lukasz-zimnoch opened this issue Mar 18, 2024 · 0 comments
Closed
2 tasks done

Report wallet heartbeat failure #3796

lukasz-zimnoch opened this issue Mar 18, 2024 · 0 comments
Assignees

Comments

@lukasz-zimnoch
Copy link
Member

lukasz-zimnoch commented Mar 18, 2024

The heartbeat mechanism is implemented but their failures are not reported anywhere. A heartbeat failure is one of the contract-level triggers for the moving funds process hence, it's an important missing piece of the entire wallet lifecycle. The goal of this task is adding heartbeat failure reporting to the client. This consists of two subtasks:

  • Making sure unstaking wallet operators do not take part in heartbeat execution (see this TODO). This is an important mechanism that would lead to wallet moving funds in case the majority of wallet operators want to unstake.
  • Trigger heartbeat notification failure using WalletRegistry.notifyOperatorInactivity function after N consecutive heartbeat failures (value of N to be determined after a discussion)

Tasks

  1. 📟 client
    tomaszslabon
  2. 📟 client
    lukasz-zimnoch
lukasz-zimnoch added a commit that referenced this issue May 15, 2024
#Refs: #3796.
This PR enables notifying of operator inactivity failure after multiple
failed heartbeats.
The inactivity notification is executed after three consecutive
heartbeat failures.
A heartbeat is considered as failed if there was an error during message
signing execution or the number of active signers was below a certain
threshold.
The operator inactivity notification is performed by
`inactivityClaimExecutor` and is similar to the DKG result submission
process.
tomaszslabon added a commit that referenced this issue May 20, 2024
Refs: #3796

Here we introduce the following changes to the heartbeat inactivity
claim trigger:
- So far, inactivity claims have been issued with an empty inactive
members set. This is a problem as the on-chain contract expects it to be
non-zero. We comply with this requirement here.
- Heartbeat signing errors are no longer counted as consecutive
heartbeat inactivity failures. If signing fails, the most probable cause
is the signing threshold that was not met. As an inactivity claim
requires that threshold to be met as well, there is no sense in
triggering that process in this case. Moreover, in case of a signing
error, the inactive members set cannot be determined which violates the
requirement from the first point
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants