algorand / algorand/go-algorand

Optimize redundant proposal generation

Aperta
#590 0 commenti 0 reazioni 1 assegnatario Rivendicata da @nullun Vedi su GitHub
Medium Priority Performance Team Carbon-11
Lingua principale
Go
Stelle
1.4k
Fork
537
Merge medio
1g 6h
PR unite (30g)
17

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.