algorand / algorand/go-algorand
network: Handle failed to broadcast transactions
- Lenguaje dominante
- Go
- Estrellas
- 1.4k
- Forks
- 537
- Merge medio
- 1 d 7 h
- PR fusionados (30 d)
- 18
Descripción
## Summary
When a txn accepted by a node (both REST and WS) first we Remember and then attempt to broadcast. Broadcast itself can fail for various reason including a pure network performance `errors.New("broadcast queue full")` reason.
In this case the txn could stuck on a node (npn, part) until it expires.
Solution options to consider:
1. Modify txsync to pull from nodes and re-broadcast to nodes excluding the node pulled from (X)
2. Handle errBcastQFull from Broadcast/Relay in node/txHandler and try again after some delay later (S)
3. Make txpool to maintain non-flushing txns, and re-broadcast them every 2-3 (N) rounds: after 2+ rounds local txns are expected to be included into some proposal. Note, in p2p world N could be > 3+ (M).
## Acceptance
1. Unit test
## Urgency
This is a well known issue. Some partners (i.e. Circle) encounter this.
It would also improve overall txn sending expedience.
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.