ObolNetwork / ObolNetwork/charon

Feature flag for agreement on head vote

Open
#4,501 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

protocol
Dominant language
Go
Stars
222
Forks
138
Avg merge
2d 6h
Merged PRs (30d)
35

Description

🎯 Problem to be solved

Previously we have introduced chain_split_halt feature so that Charon nodes continue QBFT rounds for attestation only if the proposed attestation has the same source and target votes as the one they have fetched. The intent of this is to protect against chain forks in scenarios of faulty CL/EL. We have purposefully excluded head votes from this, as they can differ because of purely performance reasons and it may cause unnecessarily missing of attestations.

However, matching head votes can improve a cluster's head vote accuracy in cases when there is low enough latency between the nodes. If we use the same logic as chain_split_halt, we can agree on the proposed attestation only if it has the same head vote as ours. Optionally, we can do this check only for the first and/or second QBFT round, so that we don't risk of missing the whole attestation because of that.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the existing chain_split_halt feature and the QBFT attestation agreement path. Determine where feature configuration and round-specific checks are handled; done means the new head-vote agreement behavior is configurable, including the first and/or second round options, without changing the existing source and target vote protection.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
blockchain, distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.