Skip to content

core/infosync: remove dead proposal topic #4728

Open

Description

@KaloyanTanev

🎯 Problem to be solved

The infosync proposal topic negotiates the cluster-wide supported block proposal types (builder/synthetic/full) every epoch, but its result is dead code. infosync.Proposals() has had no callers since #1762 (Feb 2023), which disabled the dynamic cluster-wide builder-API toggle because VCs cannot be reconfigured at runtime. The builder-vs-full decision is now driven entirely by static config (--builder-api → builder_boost_factor pre-gloas, charon's BuilderConfig from the gloas fork). The topic therefore costs a priority exchange each epoch for a value nobody reads.

🛠️ Proposed solution

Remove the dead proposal topic and its supporting code: topicProposal, Component.Proposals, the proposals field and proposalsToStrings in core/infosync, app.ProposalTypes, and the now-unused core.ProposalType constants. Dropping the topic is backward compatible: the priority protocol treats topics as arbitrary and scores each independently, so a topic sent by fewer than quorum peers simply drops out of the result during a mixed-version rollout, with no effect on the version and protocol topics.

Activity

  1. added this to the v2.0.0 milestone on Sep 28, 2026
  2. self-assigned this
    on Sep 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementCode improvement, optimisation, performanceprotocolProtocol Team tickets

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions