algorand / algorand/go-algorand

perf: batch verification for agreement votes

未关闭
#4,637 3 条评论 0 个 reaction 已指派 1 人 已被 @algonautshant 认领 在 GitHub 查看
Performance Team Carbon-11
主要语言
Go
星标
1.4k
派生
537
平均合并
1 天 7 小时
30 天内合并 PR
18

描述

**Summary**

Agreement vote verify worker could use batch verification when enough votes are available. Estimated perf boost ~2.4x in agreement vote verification.

Speeding up vote verification would speed up block validation.
- Block validation takes ~X seconds
- Batch verifying votes would speed up block validation by Y%, freeing up Z seconds of round time

**Research phase**

1. Obtain node.log from relays.
2. Figure out number of step 1 and step 2 votes relay receive in a round, build a histogram to see if 10ms batching makes sense.
3. Check a single vote verification time.
4. Estimate current CPU usage vs proposed with batching.

**Acceptance**

1. Add a new unit test
2. Benchmark two scenarios: low load, high load
3. Existing e2e tests pass
4. Run a participation TestNet or BetaNet node and ensure it progresses

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。