algorand / algorand/go-algorand

Optimize redundant proposal generation

オープン
#590 コメント 0 件 リアクション 0 件 担当者 1 名 @nullun が担当を希望しています GitHub で見る
Medium Priority Performance Team Carbon-11
主要言語
Go
スター
1.4k
フォーク
537
平均マージ
1日 7時間
マージ済み PR(30日)
18

説明

## 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.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。