algorand / algorand/go-algorand

Optimize redundant proposal generation

Đang mở
#590 0 bình luận 0 reaction 1 người được giao Được @nullun nhận Xem trên GitHub
Medium Priority Performance Team Carbon-11
Ngôn ngữ chính
Go
Star
1.4k
Fork
537
Merge trung bình
1 ngày 7 giờ
Pull request đã merge (30 ngày)
18

Mô tả

## Summary
Currently, the agreement service is attempting to create a proposal if a node has participation keys.
Once a proposal is created and signed, it attempts to verify the signature on the proposal. If the signature is invalid ( i.e. the node was not elected to make the proposal ), the proposal is dropped.

## Scope/Requirements:
The goal of this task is to perform the testing whether we need to make a proposal before attempting to make it. If we don't need to make a proposal, we should quit right away. The testing of whether we'd want to make a proposal should still be executed is a background go-routine, but no attempt to make a proposal should be made.
Relays can maintain a pool but shouldn't call generateBlock

## Reason for priority
This issue could be part of the performance project that we're working on - and this is where its priority is. Past attempts shown that it gained up to 10% on payment transactions, but it's unknown if this still holds true.

tl;dr: NPNs and relays currently waste CPU trying to create proposals. Stop doing this.
Perf enhancement

Proposal generation should be conditional on if your node has online accounts.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.