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

Implement a chain rebroadcast mechanism independent of GPBFT #814

Open
Tracked by #792
masih opened this issue Jan 7, 2025 · 0 comments
Open
Tracked by #792

Implement a chain rebroadcast mechanism independent of GPBFT #814

masih opened this issue Jan 7, 2025 · 0 comments
Assignees

Comments

@masih
Copy link
Member

masih commented Jan 7, 2025

As part of #792 the propagation of EC Chain is separated into its own pubsub topic, managed via chainexchange. Initially, the broadcast of chain and its reboradcast is coupled to GPBFT broadcast/re-boradcast: Whenever GPBFT broadcasts a message we broadcast its chain and so on. But we can do better, because: all chain subsets can be inferred from the longest broadcasted chain (i.e. the QUALITY proposal), and depending on the progress it may not be necessary to rebroadcast the chain.

Ideally, the system should have control over the chain broadcast intensity. Separate out the heuristic of chain broadcast from GPBFT.

Ideas:

  • Only broadcast a chain a fixed number of times.
  • Introduce an incrementing sequence number in messages to work around gossipsub deduplication.
  • For safety rebroadcast subsets of the QUALITY chain relative to progress?
    • Or just stick with always broadcasting the QUALITY proposal. Because from it we can infer all the sub chains that could be stemmed from it during an instance, and it is simpler to implement/maintain.
@github-project-automation github-project-automation bot moved this to Todo in F3 Jan 7, 2025
@masih masih self-assigned this Jan 7, 2025
@BigLep BigLep added this to the M2: Mainnet Passive Testing milestone Jan 8, 2025
@BigLep BigLep moved this from Todo to In progress in F3 Jan 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In progress
Development

No branches or pull requests

2 participants