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

Batch aggregation and broadcast #2373

Closed
corverroos opened this issue Jun 28, 2023 · 0 comments
Closed

Batch aggregation and broadcast #2373

corverroos opened this issue Jun 28, 2023 · 0 comments
Labels
protocol Protocol Team tickets

Comments

@corverroos
Copy link
Contributor

🎯 Problem to be solved

Currently, the core workflow batches all duties in the same the slot all the way from Scheduler to ParSigEx. But due to Aggregator requiring a different API, neither ParSignedDutySet, not SignedDutySet, we opted for non-batched individual API for aggregation and therefore broadcasting.

Batching broadcasts should have a positive effect on performance, both in charon broadcast delay as well as beacon node load. This should espeically help in performance clusters.

🛠️ Proposed solution

Change the core workflow API of SigAgg and all subsequent components to something like:

// SigAgg aggregates threshold partial signatures.
type SigAgg interface {
	// Aggregate aggregates the partially signed duties for the DV.
	Aggregate(context.Context, Duty, map[PubKey][]ParSignedData) error

	// Subscribe registers a callback for aggregated signed duties.
	Subscribe(func(context.Context, Duty, SignedDataSet) error)
}
@github-actions github-actions bot added the protocol Protocol Team tickets label Jun 28, 2023
obol-bulldozer bot pushed a commit that referenced this issue Aug 9, 2023
Introduce the `core.SignedDataSet` type and refactor `sigagg`, `aggSigDB` and `bcast` interfaces to use it. This supports batching when broadcasting signed data to beacon API which should improve latency and decrease BN load for large clusters.

category: feature
ticket: #2373
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
protocol Protocol Team tickets
Projects
None yet
Development

No branches or pull requests

1 participant